Microservices
Microservices break an application into small, independently deployable services, so a failure or update in one doesn't bring down the rest of the system.
Definition
Microservices are an architectural approach in application development where a software system is built as a collection of loosely coupled services rather than one unified codebase. Each service can be developed, deployed, and updated independently. If one service fails or is being changed, the rest of the application keeps running unaffected.
Microservices vs. monolithic architecture
Since microservices are one of the four pillars of MACH architecture, which relies on independently replaceable components rather than one monolithic platform, this distinction is also central to how MACH-based systems are built.
Benefits of microservices
- Agility — teams can develop and release changes to one service without coordinating a full-system deployment
- Flexible scaling — individual services can be scaled up or down based on their own load, instead of scaling the entire application
- Easier deployment — smaller, independent services mean smaller, lower-risk releases
- Technological flexibility — different services can use different technologies or programming languages best suited to their function
- Reusable code — a well-defined service can be reused across different parts of the system or even different applications
- Resilience — a failure in one service doesn't cascade into a full system outage