A scaleable solution for customers with large amount of account data to retrieve the end-of-day balance after appraisal for a specific date. This should be extractable on daily basis and should be re-retrievable in case of issues on a customers DWH solution
Mambu customers rely on external Data Warehouses and Regulator reporting application components to create their central bank reporting. One common aspect is the "end-of-day" balance after appraisal.
Because Mambu is a realtime system, incoming transactions can already occur between midnight when an EOD starts running, and the point in time in which the account balance is queried. This means transactions from "the next day" are already included in the balance and the incorrect balance would be reported.
In specific countries (e.g. Georgia - Space Bank) it's required to have the 'true' end-of-day balance for each account. This snapshot should be retrievable at any point during the day, as well as a few days in the past for resilience and fault tolerance reasons on customer site.
Having explored multiple solutions (https://docs.google.com/presentation/d/1TsLp5HpkAS09zvy5BIvoo4wnymB_MCQqYuWsiZHm9zQ/edit#slide=id.gca918a72ac_0_9), there seem two be two dev-less preferred options at this moment:
Determine last transaction id for the deposit or loan transaction and use ‘accountBalances’ attribute
Use a database snapshot at a specific point in time each day
Option 1 is not acceptable for larger customers as there is processing required on account-transaction level with follow-up API calls. This becomes a compute heavy solution and will increase the load on Mambu's core banking application.
Option 2 is not acceptable for larger customers as it implies a similar processing as option 1, with the difference being that this is more heavy on the customer side.