Microservices
Independent deployability, and the distributed problems it buys.
4 to work through
-
advanced
A platform adopts microservices and now needs service discovery, distributed tracing, multiple pipelines, a message broker and complex local development. Which of these costs are inherent and which indicate a boundary problem?
2 min answer -
advanced
A team adopted microservices and now every feature touches five services, five pipelines and a distributed debugging session. Which boundaries were justified, and when is consolidation the improvement?
2 min answer -
advanced
An organisation cites Netflix as justification for adopting microservices. What is missing from the comparison?
2 min answer -
advanced
Your organisation has grown to 2,000 microservices. Teams report that understanding and changing the system is now harder than before decomposition. What do you do?
2 min answer
4 terms in this topic
Deployability Test
Asking whether one team can change, deploy and roll back a service without telling the others - the single test that distinguishes a boundary deliver…
conceptDistributed Monolith
A system split into services that must still be deployed, changed and operated together, incurring distribution costs without independence.
conceptIndependent Deployability
The property that a service can be released to production without coordinated release of any other, which is the defining benefit of microservices.
case-studyUber DOMA: Structure Above Microservices
Having reached thousands of microservices, Uber introduced domains and layers above them because independent services had recreated the coordination …
Neighbouring topics
Software Architecture
General material on the engineering underneath an architecture.
SOLID
Five design principles, two of which scale beyond the class.
Domain-Driven Design
Ubiquitous language, bounded contexts and context mapping.
Bounded Contexts
Where one model ends and another begins, and why forcing one fails.
Clean Architecture
Concentric layers with dependencies pointing only inwards.
Hexagonal Architecture
Ports defined by the domain, adapters supplied by infrastructure.
Modular Monolith
Enforced internal boundaries without a network between them.
Service Boundaries
Drawing lines along change patterns rather than technical layers.
Design Patterns
Reusable solutions at code level, and when they become ceremony.
Refactoring
Changing structure without changing behaviour, in verified steps.
Technical Debt
Deliberate, tracked and repaid — as distinct from mess.
Testing Strategies
The pyramid, and the contract tests distributed systems add to it.
Contract Tests
Capturing what consumers actually use, not what the API documents.
CI/CD
Continuous integration and delivery, and the architecture that caps them.
Release Strategies
Blue-green, canary, shadow and progressive delivery.
Feature Flags
Decoupling deploy from release, with an expiry date.
Trunk-Based Development
Short-lived branches, and unmerged work as inventory.
Code Review
Where architectural rules are enforced by people rather than by tools.
DORA Metrics
Throughput and stability moving together rather than trading off.