Monolithic + MicroServices

This is common issue if planing to use Aws EBS, I had same issue and solved using following approch

1) Think design as monolithic and then decide further into bounded context and each bounded context will be a microservicea.

2) Now design your database and try to keep.each microservice db into separate schema.

3) Now in maven module create parent child module .

4) In parents module keep your spring boot main method, swagger,and common module like security etc

5) Disable spring boot nature in child module .

6) Add all child module microservice into parent module and maven build install.

7) Deploy on AWS EBS .

8 ) Expose all microservice using Aws Api getway.

Benefits: in future whenever you will be able to support infrastructure cost just move module and db schema and no other changes required.

Disagreed with statement that "wrong perception that deploying monolithic is cheaper than micro-services" plz check Aws cost estimations monolythic is cheaper then microservice ,microservice need polygot persistence and independent hosting.

  • https://aws.amazon.com/premiumsupport/knowledge-center/estimating-aws-resource-costs/

  • https://calculator.aws/#/


Firstly, it is a wrong perception that deploying monolithic is cheaper than micro-services w.r.t. infrastructure..If you are sure you want to go micro-services way; then its better to build it now..

You can build multiple micro-services and deploy on same virtual machine. Also, these days you have many light weight technologies ( lighter than spring boot ) which has lesser memory footprint, faster start up time like micronaut.

Also, until and unless you are running at scale of Amazon... it is a wrong perception that monolithic cannot scale..Even monolithic can handle quite good number of requests.


I feel like building micro services from day 1 is the best approach these days, no one knows which of your services goes viral. You can not afford a blackout when everyone wants to connect to your services.