[ 
https://issues.apache.org/jira/browse/FINERACT-2173?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Adam Saghy updated FINERACT-2173:
---------------------------------
    Description: 
We dont have an official way of migrating data from external loan providers 
into Fineract, so they usually happens by manually recreating the loans.

To make migration easier, it would be nice to collect some information and 
having some flag that reflect whether there is an ongoing migration and that 
flag can be fetched via API and reflected on the outgoing external business 
events, so it can be used by downstream systems to build any logic (should they 
ignore, should they not...up to them, but they are informed).

 

I believe we should focus on below as first steps:
 - Introduce a new module: `fineract-migration`
 -- API to mark Loan as migration on going ( `migration=true` flag) and fetch 
its status
 -- Have a flag on the business events that reflects whether there is ongoing 
migration or not... (optional field, if migration is ongoing set flag as 
`true`, otherwise false or no value...)
 --- Update the Message (MessageV1.avsc), so Consumer can see whether migration 
is ongoing without extracting the full message
 -- Be able to set which external business events to be sent while Loan is 
marked as migration is in progress
 --- We can define which external business events to be sent during migration
 ---- Performance implications + avoid spamming consumers
 -- Be able to mark Loan as migration COMPLETED or FAILED to reflect the 
outcome:
 --- In case COMPLETED, raise a LoanMigrationCompletedBusinessEvent with the 
Loan details to be sent
 --- In case FAILED, raise a LoanMigraitonFailedBusinessEvent with the Loan 
details to be sent

At later stage we can do also the following:
 * Tracking which transactions, journal entries were created during the 
migration
 ** Build reports? 
 ** New API to fetch transactions, journal entries during migration?
 * Maybe stop journal entry creation during migration?
 ** Optionally configurable
 * Design an API where loan can be created, approved, disbursed and apply all 
transactions in one shot?
 ** One request, multiple actions in Fineract
 * etc.

  was:
We dont have an official way of migrating data from external loan providers 
into Fineract, so they usually happens by manually recreating the loans.

To make migration easier, it would be nice to collect some information and 
having some flag that reflect whether there is an ongoing migration and that 
flag can be fetched via API and reflected on the outgoing external business 
events, so it can be used by downstream systems to build any logic (should they 
ignore, should they not...up to them, but they are informed).

 

I believe we should focus on 2 steps as starting point:
 - API to mark Loan as migration on going ( `migration=true` flag) and fetch 
its status
 - Have a flag on the business events that reflects whether there is ongoing 
migration or not... (optional field, if migration is ongoing set flag as 
`true`, otherwise false or no value...)
 - Be able to set which external business events to be sent while Loan is 
marked as migration is in progress
 - Be able to mark Loan as migration COMPLETED or FAILED to reflect the outcome:
 -- In case COMPLETED, raise a LoanMigrationCompletedBusiness event with the 
Loan details


> Migration activities for Loan
> -----------------------------
>
>                 Key: FINERACT-2173
>                 URL: https://issues.apache.org/jira/browse/FINERACT-2173
>             Project: Apache Fineract
>          Issue Type: Improvement
>            Reporter: Adam Saghy
>            Priority: Minor
>             Fix For: 1.12
>
>
> We dont have an official way of migrating data from external loan providers 
> into Fineract, so they usually happens by manually recreating the loans.
> To make migration easier, it would be nice to collect some information and 
> having some flag that reflect whether there is an ongoing migration and that 
> flag can be fetched via API and reflected on the outgoing external business 
> events, so it can be used by downstream systems to build any logic (should 
> they ignore, should they not...up to them, but they are informed).
>  
> I believe we should focus on below as first steps:
>  - Introduce a new module: `fineract-migration`
>  -- API to mark Loan as migration on going ( `migration=true` flag) and fetch 
> its status
>  -- Have a flag on the business events that reflects whether there is ongoing 
> migration or not... (optional field, if migration is ongoing set flag as 
> `true`, otherwise false or no value...)
>  --- Update the Message (MessageV1.avsc), so Consumer can see whether 
> migration is ongoing without extracting the full message
>  -- Be able to set which external business events to be sent while Loan is 
> marked as migration is in progress
>  --- We can define which external business events to be sent during migration
>  ---- Performance implications + avoid spamming consumers
>  -- Be able to mark Loan as migration COMPLETED or FAILED to reflect the 
> outcome:
>  --- In case COMPLETED, raise a LoanMigrationCompletedBusinessEvent with the 
> Loan details to be sent
>  --- In case FAILED, raise a LoanMigraitonFailedBusinessEvent with the Loan 
> details to be sent
> At later stage we can do also the following:
>  * Tracking which transactions, journal entries were created during the 
> migration
>  ** Build reports? 
>  ** New API to fetch transactions, journal entries during migration?
>  * Maybe stop journal entry creation during migration?
>  ** Optionally configurable
>  * Design an API where loan can be created, approved, disbursed and apply all 
> transactions in one shot?
>  ** One request, multiple actions in Fineract
>  * etc.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to