Dear community, I'd like to introduce you the idea of 3 different Fineract instance types: - read - write - batch
All 3 come with different types of restrictions in terms of what they are capable of. For example a read instance is going to be only capable of serving read (GET) APIs. Write APIs will be able to serve both read and write APIs. Batch instances will be only able to serve batch job related APIs and run the batch jobs themselves. This will greatly improve how we can scale Fineract in case we're planning to deploy it to a highly-available setup with the highest-throughput because we can scale individual parts of it. And frankly, reading data happens much more often than actually writing data so the ability to do this type of deployment will greatly improve what we can achieve in terms of performance. Also, with the separation in place, we could utilize read-replica databases as well where write and batch instances connect to a master DB and the read instances connect to read-replicas therefore reducing the load on the database as well. I've created a ticket for this as well: https://issues.apache.org/jira/browse/FINERACT-1571 Hope all this makes sense and like the idea. Best, Arnold
