Miguel, please expand on the use of both MySQL/Percona and MongoDB—what are these two very different DB layers used for. Why both NoSQL and SQL based DBMSs?
Since we have micro-service architecture, there is flexibility to use the datastores that are best suited to particular scenarios or processing
MySQL (Percona XtraDB) used for transfers, clearing primarily - uses normalized data of individual transfers, participants and related data
MongoDB used during bulk transfers to store bulk messages (possibly large) as documents for disaggregation and aggregation and in CEP components (to store interesting data , rules, etc)
Also worth mentioning that Mojaloop relies on MySQL to provide consistency through strong data integrity semantics via ACID(Atomicity, Consistency, Isolation, Durability), especially on position management.
It also allows us to rigidly define our data models within the Central Ledger, across our central-services, account-lookup and quoting-service.
For Bulk, we also need to be able to persist a large message…and as such it is more efficient to store it directly as an object into MongoDB.