Software → Distributed Systems
Microservices Architecture
An architecture style that structures a system as independently deployable services organized around business capabilities.
Motivation
Microservices architecture solves the problem of scaling organizational and deployment boundaries when one application becomes too large to evolve as a single unit.
Where it fits
It belongs to software architecture and system design, and it has strong operational consequences.
Mental model
A microservice is a small independently deployable service with its own boundary and responsibilities.
Important details
The tradeoff is autonomy and independent deployment versus distributed-system complexity, observability, network failure, and data consistency challenges.
Common mistakes
- Using microservices before the domain boundaries are understood.
- Treating every class or module as a service.