Microservices are a kind of software architectural solution that allows software to be developed into relatively small, distinct and loosely coupled components. Each of the components provides a distinct subset of the functionality of the entire application. Each microservice, can then be designed, developed, and managed independently. This allows for distributed ownership of a large application across a large organisation, with each microservice owned by a specific team.
- Microservices are an independent components and are smaller in size hence can be easily built and maintain by a small team.
- Microservices are scalable.
- Technology diversity i.e. This eliminates long-term commitment to a single technology stack, if you want to try out a new technology stack on an individual service, you can go ahead.
- Fault isolation i.e. larger applications remain unaffected by the failure of small component.
- Better support for parallel team to work on separate components.
- Independent deployment and easy integration.
- This enables the high quality code since at a time specific development team focuses on small part of a larger application.