Why Twilio Segment moved from microservices back to a monolith
Article timing & context
- Many point out the post is from 2018 and argue its lessons predate today’s tooling, patterns, and AI assistance.
- Others say the age is still relevant: it documents a common failure mode of “microservices done badly,” not an obsolete technical detail.
What “microservices” actually are
- Strong debate over definitions: some argue microservices are about independently deployable services aligned to business capabilities, not about infra, HTTP, or multiple machines.
- Others push back on authority-based definitions and note the term’s history from SOA, saying most real systems don’t meet the “pure” ideal anyway.
- Several stress that if services can’t be deployed independently, you’ve built a “distributed monolith,” not microservices.
Shared libraries, coupling & distributed monoliths
- The Segment case where a shared library forced redeploys across ~140 services is widely criticized as tight coupling that defeats microservice benefits.
- Thread dives into nuances:
- Some say any shared dependency with lockstep upgrades = distributed monolith.
- Others argue shared deps are fine if consumers can pin versions and upgrades are backward compatible.
- There’s a long subthread on protobuf/JSON schemas and backward compatibility vs version sprawl and tech debt.
Org structure, discipline & culture
- Many see the real root cause in organizational issues: weak technical leadership, lack of “someone who can say no,” and Conway’s/Peter/Parkinson effects.
- Argument that microservices are primarily an org-scaling tool; using them with a tiny team (3 people, 140 services) is self-sabotage.
Monolith vs microservices trade-offs
- Multiple commenters emphasize both patterns can work or fail; dogmatism is the real problem.
- Monolith advantages cited: easier refactoring, simpler wide-scale upgrades (e.g., security patches), fewer distributed-systems failure modes, better end-to-end understanding.
- Microservice advantages cited: team decoupling, isolated deployments, clearer ownership, better fit for many heterogeneous integrations.
Testing, tooling & repos
- A lot of the Segment story is reframed as test-quality and repo-layout problems rather than architecture per se.
- Several suggest monorepos with good tooling (Bazel, dependency-based test selection) can keep services independent while solving many of the pain points they hit.