Chapter 14 — Service-Based Architecture Style
Core ideas
- Domain-partitioned, distributed but pragmatic: a handful of coarse-grained “domain services” (typically 4–12), each independently deployed, usually sharing a single monolithic database, fronted by a user interface, sometimes with an API gateway. No orchestration engine.
- Often described as the most pragmatic distributed style and the best “microservices without the pain” starting point.
- Variants: separate/joined DBs, with/without an API layer.
Trade-offs / when to use
You want better deployability/testability/fault-isolation than a monolith, without the granularity, data-decomposition, and operational cost of microservices. Shared DB means database changes still ripple and you don’t get per-service data isolation.