Hello Fineracteers,
I discovered Fineract and specially Fineract-cn last week, and am very 
impressed by the future potential of the project, both to deliver on its 
original social mission but also to revolutionize commercial FinTech sector the 
same way the big data wave caught up when Hadoop was open sourced.
The architecture [Cloud Native/micro-services] is at the forefront of what a 
modern application should look like, and the decision to start from scratch and 
don't carry the burden of legacy was a bold but very smart move imho.
There is however, one area that might be interesting to challenge: the CQRS and 
the dual storage engine needed to provide capability for async command 
execution (and its draw back on error handling from front end) and sync query 
accessing the traditional DBMS with its scalability shortfall.

The current implementation looks optimal when it was picked (I assume when 
fineract-cn was still mifos io), because there was no open source "NewSQL" 
solution available. Using classic RDBMS with known scalability limitation, 
coupled with NoSQL eventual consistency, no ACID, no multicolumn/table 
transaction, no join or grouping, given up to gain stellar horizontal 
scalability was a smart move.

However, in 2017, Apache released Trafodion as Top Level Project. It could 
replace both Postgress/MariaDb/MySQL and Cassandra. It is an MPP RDBMS built on 
top of Hadoop Hbase (the Hadoop equivalent of Cassandra). It is fully ACID, 
supports multicolumn/multi table transactions, joins, group by, is fully 
horizontally scalable and support all the bells and whistle you would expect 
from a classic RDBMS. It can be classified as NewSQL, basically claiming back 
all the things given up by NoSql in exchange for scalability. In addition, the 
company backing it up (Esgyn Corp) have recently announced that its commercial 
product (EsgynDB, derived from Trafodion) is being used for Core Banking in 2 
major Banks in China, struggling with the ever growing mobile payment volume 
that traditional scale up databases cannot keep up with. In addition Esgyn 
provides a DB as a service offering, cloud hosted fully managed (Esgyn Strato), 
giving the option to potential fineract-cn hosting company to "outsource" the 
persistence layer management and focus on the rest.

Wouldn't it be an interesting idea to hook Trafodion to Fineract-cn? I can 
think of the following advantages:

  *   Simplify persistence layer ecosystem from 2 DB to 1 -> back to classic 
RDBMS but with full scale out capability MPP style.
  *   Still Apache license compatible
  *   Persistence layer ready to support challenging analytical workload 
(reporting use cases? - thanks for reclaiming Join/group-by at scale).
  *   Remove the reticence of decision maker to use NoSQL in Core Banking
  *   Performance over Cassandra [on paper, even if Trafodion was used only as 
a drop in replacement to Cassandra for async commands, the use of Trafodion 
"Align Format" feature should demonstrate higher performance for journaling, as 
Trafodion would write 1 BigTable cell per row, while Cassandra or Native Hbase 
would write 1 X nb Column cells per row].
  *   With a solid company already showing its commitment to core banking 
backing the Apache project

Hope this makes sense?
Eric Owhadi,
Principal Engineer at Esgyn Corporation.
(Resent this email, as first one did not make it???)

Reply via email to