Microservices can be a very effective approach for delivering value to your organization and to your customers. If you get them right, microservices help you to move fast by making changes to small parts of your system hundreds of times a day. But if you get them wrong, microservices will just make everything more complicated.
In this book, technical engineering leader Sarah Wells provides practical, in-depth advice for moving to microservices. Having built her first microservice architecture in 2013 for the Financial Times, Sarah discusses the approaches you need to take from the start and explains the potential problems most likely to trip you up. You'll also learn how to maintain the architecture as your systems mature while minimizing the time you spend on support and maintenance.
With this book, you will:
Learn the impact of microservices on software development patterns and practices
Identify the organizational changes you need to...
AI Reading Assistant
Whole-book reading guide from stratified index samples; jump to passages in the text
Tip the Site
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat Pay
Alipay
Open WeChat or Alipay and scan. No login required.
AI guide
# Enabling Microservice Success: A Reading Guide
## 【One-Line Pitch】
A practical, field-tested guide for engineering leaders and teams considering or already adopting microservices, drawing on Sarah Wells's experience building the Financial Times' microservice architecture—covering everything from whether microservices are right for you, to organizational design, to avoiding the common pitfalls that turn a promising architecture into a maintenance nightmare.
## 【Book Arc】
- **Opening (~0%–10%)**: Defines the microservices architectural style (suite of small services, own processes, lightweight communication, business capability–oriented, independently deployable) and establishes what "effective software delivery" means—moving fast, delivering value, maintaining stability, controlling risk, and avoiding big-bang rewrites. Also introduces the critical question: are microservices right for your organization?
- **Early (~10%–23%)**: Explores the fundamental challenges of distributed systems—data duplication across services, security across network boundaries, monitoring complexity, and the "undifferentiated heavy lifting" you should offload to managed services. Introduces the concept of governance as guardrails rather than gatekeeping.
- **Early (~23%–32%)**: Addresses the organizational dimension, starting with Conway's Law (systems mirror organizational structure) and Gall's Law (complex systems must evolve from simple ones). Makes the case for starting with a monolith or modular monolith and extracting services as you grow, rather than building microservices from scratch.
- **Middle (~32%–42%)**: Covers team topology and communication patterns—stream-aligned teams, enabling teams, complicated subsystem teams, and platform teams. Emphasizes that high-bandwidth synchronous communication between teams should be rare because it couples them together, while asynchronous information sharing supports flow.
- **Middle (~42%–48%)**: Discusses technology alignment, API governance, and the practical realities of running microservices at scale—including the FT's experience removing change advisory boards, encouraging technology experimentation, and trusting teams to make release decisions.
- **Late (~48%+)**: Addresses organization-level concerns: platform services, vendor management, and the broader cultural and process changes needed to make microservices work long-term.
## 【Key Takeaways】
- **Microservices are a distributed architecture with real costs** (Early): Each service runs in its own process and communicates over the network, which means you must secure data in transit, lock down endpoints consistently, and deal with the complexity of many moving parts. The security of your system is only as strong as its least secure service.
- **Start with a monolith, not microservices** (Early): Gall's Law applies—a complex system designed from scratch never works. Begin simple, grow your codebase and team, and extract services when you start slowing down and getting in each other's way. By then, it's clear which parts hang together coherently.
- **Conway's Law is powerful and unavoidable** (Early): Your software architecture will mirror your organizational structure. If you have two teams, you'll get two subsystems. This means organizational design is architectural design—managers deciding team structure are implicitly deciding system architecture.
- **Data duplication is necessary but needs governance** (Early): Each microservice owning its own data means you'll duplicate some information (like customer names on orders) to avoid chatty systems. You need clear understanding of what's cached where and which service is the canonical source, plus mechanisms like cache timeouts or notifications to handle updates.
- **Governance should be guardrails, not gatekeeping** (Early): Risk evaluation shouldn't happen independently in every team. Central governance should provide insight and boundaries, not mandates and signoff chains. The FT removed their change advisory board and saw fewer failing releases when teams were trusted to decide when releases were ready.
- **Communication between teams should be asynchronous by default** (Middle): High-bandwidth synchronous communication couples teams together and requires juggling schedules. Expect regular contact with service consumers and providers, but share key information in formats people can access when they have time—not in chat channels everyone is expected to monitor constantly.
- **Team topology matters more than technology** (Middle): Stream-aligned teams own services end-to-end; enabling teams transfer expertise (deployment, observability, security); complicated subsystem teams build specialist systems like ML; platform teams provide shared infrastructure. Each type reduces cognitive load in different ways.
- **Use managed services for undifferentiated heavy lifting** (Early): Don't run your own messaging queues or database clusters unless they provide competitive advantage. Lean on SaaS and cloud providers for commodity components, and focus your engineering effort on what's specific to your organization.
## 【Reading Tips】
- **Skim Chapter 1 if you're experienced with microservices**: The definition of the architectural style is foundational but familiar territory. Focus instead on Chapters 2–3, where Wells discusses effective software delivery and whether microservices are right for you—this is where the practical assessment framework lives.
- **Deep-read the organizational chapters (roughly 23%–42%)**: The discussion of Conway's Law, team topologies, and communication patterns is where this book differentiates itself from purely technical microservices guides. These insights are hard-won from real experience at the FT.
- **Pay attention to the FT case study details**: Wells's specific examples—the acceptance test suite that took a week to fix, the 30,000 parallel requests that took down servers, the removal of the CAB—are worth noting as concrete illustrations of the principles she advocates.
- **Watch for the governance thread throughout**: The book repeatedly returns to how much autonomy teams should have versus what should be centrally controlled. This is a nuanced argument that develops across chapters—read for the progression, not just individual points.
- **Skip ahead if you're already running microservices**: If you're past the decision point, the early chapters on whether microservices are right for you can be skimmed. The later material on platform teams, vendor management, and organization-level concerns will be more valuable.
## 【Coverage Limits】
The excerpts cover roughly the first half of the book (through ~48%), including context, effective delivery, organizational design, and team topology. Later chapters on platform services, vendor management, and long-term maintenance are only partially represented in this guide.
##
Page 13
f this chapter as a guide. I’ll introduce the concepts I’ll be talking about in the remainder of the book to link key themes together before we break them do...
irst, you need to make sure that all the teams that need to work on this change are committed to do the work and have a shared understanding of the timeline....
stems until you get to a system that is simple enough to be understood. Different teams then design these different subsystems. As Conway points out, both or...
ly, the place where freedom to choose technology matters is for business differentiators. An example of this is where a new product or feature would be far e...
than they do getting built. There is a lot of detail there. In this chapter, I’m focused more on the cultural side of things. The big change is to think much...
s and approaches lean heavily on getting other people to do things for you, whether that is using open source software libraries, SaaS or PaaS solutions, etc...
e? You can always remove tests temporarily at first. Remove the end-to-end tests from your pipeline for a few weeks and see whether you miss them. In Summary...
e calls your code makes are in-process, you may not realize the full implications of moving to a distributed model where calls go over the network. Many year...
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.
Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat PayAlipay
Open WeChat or Alipay and scan. No login required.
Loading comments...
Reply to Comment
Edit Comment