[ https://issues.apache.org/jira/browse/FINERACT-1744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mihaly Dallos updated FINERACT-1744: ------------------------------------ Description: h3. Goal The goal of this ticket is to implement a system-wide (API and external events) idempotency solution for Fineract. h3. Background Fineract is deployed in many organizations where high-availability and fault-tolerance is essential. One of the solutions to APIs suddenly crashing is to retry the requests to those APIs. In these situations it can occur that an operation is retried even though a former execution has already completed resulting in 2 executions of the same operations. The system needs to be able to detect these scenarios and prevent executing the same request multiple times. Also, the emitted external events Fineract is sending should provide a similar behavior to the above to detect events which are for the same operation. h4. Idempotency imply changes in the following * API contract: {{Idempotency-Key}} header * External event framework contract. Use of {{idempotencyKey}} attribute * Command execution recap * Storing the idempotency information; {{m_portfolio_command_source}} table * Introducing proper statuses to commands; {{UNDER_PROCESSING}} and {{ERROR}} status. * Command execution changes * Purging commands was: h3. Goal The goal of this ticket is to implement a system-wide (API and external events) idempotency solution for Fineract. h3. Background Fineract is deployed in many organizations where high-availability and fault-tolerance is essential. One of the solutions to APIs suddenly crashing is to retry the requests to those APIs. In these situations it can occur that an operation is retried even though a former execution has already completed resulting in 2 executions of the same operations. The system needs to be able to detect these scenarios and prevent executing the same request multiple times. Also, the emitted external events Fineract is sending should provide a similar behavior to the above to detect events which are for the same operation. h4. Idempotency imply changes in the following * API contract: {{Idempotency-Key}} header * External event framework contract. Use of {{idempotencyKey}} attribute * Command execution recap * Storing the idempotency information; {{m_portfolio_command_source}} table * Introducing proper statuses to commands; {{UNDER_PROCESSING}} and {{ERROR}} status. * Command execution changes * Purging commands > System idempotency > ------------------ > > Key: FINERACT-1744 > URL: https://issues.apache.org/jira/browse/FINERACT-1744 > Project: Apache Fineract > Issue Type: Improvement > Reporter: Arnold Galovics > Assignee: Zoltán Nébli > Priority: Major > > h3. Goal > The goal of this ticket is to implement a system-wide (API and external > events) idempotency solution for Fineract. > h3. Background > Fineract is deployed in many organizations where high-availability and > fault-tolerance is essential. One of the solutions to APIs suddenly crashing > is to retry the requests to those APIs. > In these situations it can occur that an operation is retried even though a > former execution has already completed resulting in 2 executions of the same > operations. > The system needs to be able to detect these scenarios and prevent executing > the same request multiple times. > Also, the emitted external events Fineract is sending should provide a > similar behavior to the above to detect events which are for the same > operation. > h4. Idempotency imply changes in the following > * API contract: {{Idempotency-Key}} header > * External event framework contract. Use of {{idempotencyKey}} attribute > * Command execution recap > * Storing the idempotency information; {{m_portfolio_command_source}} table > * Introducing proper statuses to commands; {{UNDER_PROCESSING}} and > {{ERROR}} status. > * Command execution changes > * Purging commands > -- This message was sent by Atlassian Jira (v8.20.10#820010)