Today, microservices are the biggest hype in application architecture. Due to the flaws of a traditional monolithic application, microservice has taken very huge importance.
With microservice architecture, an application is developed or refactored, into separate services that communicate to one another in a well-defined way via APIs, or instance. Each microservice is self-contained, each maintains its own data store, and each can be updated independently of others.
When I came across microservice architecture, I was not able to comprehend the concept easily. I read articles, saw some code bases but was not able to picture the whole architecture properly. Then I read one of the books on microservice which gave me a good idea on how microservice architecture is implemented and how to design one.
In a traditional monolithic application, once you choose the code framework and database, we cannot change that. As the application grows, it is very difficult to move to a different or better framework. We cannot change the underlying database. The mistakes we make during the initial period of application design is gonna haunt us forever.
In the case of microservice architecture, we can create services in a different framework and choose a different database for each one of them. It gives us a lot of flexibility and can adapt to new technology very easily. Also, we can refactor our existing monolithic application to microservice by identifying the important business modules and converting them to services.
So, if your monolithic application has grown into this big monster then microservice architecture is best suited for you. It is the right time to refactor the big monster application to easily maintainable chunk of micro-services.
To know more about how to design microservice, refer to this nice free ebook by Nginx which talks about all the aspects of microservice.