Microservices are services that each perform a small task.
Each microserivce is relatively a small set of related functionalities. The benefits of taking this approach are:
- easier for a developer to understand/develop
- can be deployed independently of other services
- easier to scale up or out
- improved fault isolation
- no long-term commitment to a technology stack
Microservices vs Monolithic
a monolithic application consists of one big deployable unit, usually containing three parts:
- a database (consisting of several tables usually in a relational database management system)
- a server-side program.
the physical and logical decomposition of large and complex things into smaller and manageable components.
With the use of Container Technology, physical decomposition can be done.
Domain Driven Design helps to decompose the system logicaly
The following capability model provides a modular, service oriented overview of the microservices architecture requirements.