Microservices are a hot topic these days. It is important to know why we use them instead of monolithic systems. The short answer is: Scalability. The detailed one would be:
Advantages:
- The microservice architecture is easier to reason about/design for a complicated system.
- They allow new members to train for shorter periods and have less context before touching a system.
- Deployments are fluid and continuous for each service.
- They allow decoupling service logic on the basis of business responsibility
- They are more available as a single service having a bug does not bring down the entire system. This is called a single point of failure.
- Individual services can be written in different languages.
- The developer teams can talk to each other through API sheets instead of working on the same repository, which requires conflict resolution.
- New services can be tested easily and individually. The testing structure is close to unit testing compared to a monolith.
Microservices are at a disadvantage to Monoliths in some cases. Monoliths are favorable when:
- The technical/developer team is very small
- The service is simple to think of as a whole.
- The service requires very high efficiency, where network calls are avoided as much as possible.
- All developers must have context of all services.
No comments:
Post a Comment