Microservice architecture splits a system into small, independently deployable services, each built around one business capability and owned by one team. Services hide their data behind contracts; nothing shares a database or a release train.
The style buys organizational and operational independence — and pays for it in distributed-system complexity. Its value depends less on service size than on getting the boundaries right.
How It Works
- Boundaries follow business capabilities (bounded contexts); each service encapsulates one and owns its data store exclusively.
- Services communicate through versioned APIs or asynchronous events; an API gateway handles routing, authentication, and rate limiting at the edge.
- Each service has its own pipeline: build, test, deploy, and scale without coordinating with other teams.
- Resilience is explicit: timeouts, circuit breakers, and bulkheads guard every cross-service call.
Failure Modes
- A distributed monolith emerges: services share a database or deploy in lockstep, keeping the coupling while adding the network.
- Boundaries cut wrong, so one feature routinely changes three services — coordination returns as the dominant cost.
- Synchronous call chains stack latencies and couple availability; one slow service degrades every caller upstream.
- The platform bill arrives early: teams drown in pipelines, brokers, and dashboards before any independence pays off.
Verification
- Each service deploys to production alone; deployment logs show no coordinated multi-service releases.
- Chaos check: killing one non-critical service leaves every other capability serving, with fallbacks engaged.
- Traces show user-critical paths crossing at most a defined number of synchronous hops.
- A change-coupling report over commits shows features landing in one service; recurring cross-service features flag wrong boundaries.
Variants and Related Tactics
- Self-contained systems decompose coarser and keep the UI inside each unit — often the calmer first step.
- A modular monolith delivers boundary discipline without the network; “monolith first” remains sound advice.
- API gateway, saga, event-driven architecture, and circuit breaker are this style’s standard companions.
References
- Microservices — James Lewis, Martin Fowler (2014)
- Building Microservices, 2nd ed. — Sam Newman (O’Reilly, 2021)
- Microservices Patterns — Chris Richardson (Manning, 2018)
- MonolithFirst — Martin Fowler (2015)