Software Architecture: The Hard Parts
by Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani · O'Reilly Media
The strongest treatment of the data side of microservices: how to split a shared database, assign data ownership, and choose saga styles. Trade-off analysis for distributed architectures. It covers service granularity, breaking apart operational data and databases, data ownership, distributed transactions and eventual consistency, orchestration versus choreography sagas, and contracts, all worked through a running case study.
This link may earn us a small commission at no extra cost to you. Affiliate disclosure
More resources on Microservices Architecture
AWS Microservices Documentation & Guides
Amazon Web Services (AWS) offers extensive documentation and guides on implementing microservices on their platform. While specific to AWS, the architectural patterns and best practices discussed are generally applicable and provide practical insights.
GOTO Conferences - Microservices Talks
The GOTO Conferences YouTube channel features numerous talks and presentations from industry experts on various software development topics, including microservices architecture. Many highly regarded speakers discuss patterns, challenges, and solutions related to microservices.
Goodbye Microservices: From 100s of problem children to 1 superstar
This is the concrete, documented case of their costs exceeding their benefits. Segment's 2018 engineering case study of moving from about 140 per-destination microservices back to a monolith in a monorepo. It describes drift in shared libraries, operational load, and the testing approach, then lists the trade-offs it accepted, including weaker fault isolation.
Building Microservices, 2nd Edition
The single best end-to-end book on the topic, and it is candid about when not to use microservices. Sam Newman's book on designing fine-grained systems, rewritten for the 2021 edition. It covers modeling service boundaries, splitting a monolith, communication styles, workflow and sagas, deployment, testing, observability, security, resiliency, and how team structure shapes the architecture.
A Pattern Language for Microservices (microservices.io)
Chris Richardson's free catalog of microservice patterns, grouped by concern: decomposition, database-per-service, saga, transactional outbox, CQRS, event sourcing, API gateway, service discovery, testing, deployment, and observability. Each pattern page states its forces, solution, and trade-offs.