...
- Independent Development – All microservices can be easily developed based on their individual functionality
- Independent Deployment – Microservices can be individually deployed in any application
- Fault Isolation – Even if one service of the application does not work, the system still continues to function and the fault is easily detectable
- Mixed Technology Stack – Different languages and technologies can be used to build different services of the same application
- Granular Scaling – Individual components can scale as per need, there is no need to scale all components together
- Ease of Unit Testing - unit testing is easier to maintain as functionality per mS is isolated
Some disadvantages of splitting out the functionality into these granular microservices are:
- Full stack error log traceability
- Latency introduced
- Deployment more complicated
- e2e testing more complicated
- more points of failure
High Level Design of microservice flow
...