Microservice Architecture – Commonly referred to as “microservices” – is a software development architectural design that structures an application as a collection of services that have the following characteristics:
- Small, highly maintainable, and testable – i.e. a team can test and update an existing service without rebuilding and redeploying the entire application.
- Loosely coupled – i.e. each service is self-contained and the internal implementation details of each service are hidden from other services.
- Independently deployable – i.e. each service is a separate codebase
- Organized around business capabilities – i.e. each service should implement a single business capability within a bounded context.
- Owned by a small team – i.e. a single small team of developers can write and maintain a service.
Using the microservice architecture, large and complex applications may be delivered quickly, frequently, and reliably. Additionally, it enables an organization’s technology stack to evolve.