You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@fineract.apache.org by "Mihaly Dallos (Jira)" <ji...@apache.org> on 2022/09/28 08:16:00 UTC

[jira] [Updated] (FINERACT-1744) System idempotency

     [ 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:
The goal of this ticket is to implement a system-wide (API and external events) idempotency solution for Fineract.

 

Details to come.


> 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)