FINERACT-1795: Improve resilience of command processing service#2727
FINERACT-1795: Improve resilience of command processing service#2727vidakovic merged 1 commit intoapache:developfrom
Conversation
7d531dc to
58bb29f
Compare
|
I've investigated that failure a bit and can't make any sense of it. The server side exception mapping seems to be OK as far as I can tell (investigated all execution paths). Nevertheless, on the integration test we get a HTTP 204 instead of 404. As far as I can see this is not related to my PR (made no changes in the area where things are breaking). |
58bb29f to
d8e9ee4
Compare
|
I think I found it... tricky. Needed to re-throw exception in |
d8e9ee4 to
3a34bde
Compare
|
Adjusting the tests took more time than should be necessary... the whole tenant based database setup is impossible to mock for testing... there are just to many factories inside of factories calling static functions in some obscure utility classes. |
cac5b23 to
dc190bc
Compare
|
Alright... I think that's it. Removed some overly complex error handling for some retry scenarios and fixed a hidden issue in one of the retry fallback functions (missing return type leads to wrong method signature). |
1e3a1cf to
29142ce
Compare
|
Added documentation and more cleanups. |
...in/java/org/apache/fineract/infrastructure/core/domain/FineractPlatformTenantConnection.java
Outdated
Show resolved
Hide resolved
29142ce to
8444981
Compare
8444981 to
53b5a72
Compare
Improve the resilience of the command processing service and make retry (and other parameters) configurable (provide reasonable defaults).
The current retry mechanics in place are causing various congestion issues in high traffic deployments. Besides that, we always have to lookup the tenant to retrieve the retry configuration; Spring Boot's application.properties are the proper place for that.
Retries are used currently with 4 service function calls and the code used to implement retries is very repetitive and not very adjustable.