I have a medium scale e-commerce application. Over a period of time our monolithic project got quite heavy in terms of code base. I was exploring the solutions for it and found micro-services is one option but found it like a very early optimization which involves too many risks and increased development cycles. So, I thought of splitting the monolithic app into multiple apps based on business. I come up with following three:
- Storefront (Website)
- Admin Backend (CRM, Reporting etc.)
- Seller Platform
By creating these 3 separate projects, I find following benefits from this:
- They we can independently developed them and wherever a common code base is required, we can add them as library in current projects. B
- These applications can be deployed independently.
- Wherever we need to communicate between applications, we can write limited APIs to transfer data
- Having common database will enable us to keep complete consistency of data by retention of all foreign keys
Having said so, I am concerned about following points:
- Firstly, is this a right approach? Are there any caveats in it?
- Will having a common database accessed by three apps and writing on similar tables will cause any issue later on with scale?