Monolith vs. Microservices
5 exercises — practise the vocabulary of monolith-to-microservices discussions: the strangler fig migration pattern, bounded context from DDD, Conway's Law and the Inverse Conway Maneuver, operational overhead specifics, and the modular monolith recommendation.
0 / 5 completed
1 / 5
A CTO announces: "We're using the strangler fig pattern to migrate our five-year-old Rails monolith to services." A new engineer asks what this migration strategy involves in practice. Which description is correct?
Strangler fig pattern vocabulary:
The term comes from the strangler fig tree, which grows around an existing tree and eventually replaces it. The migration metaphor is precise: new services grow alongside the monolith, taking over functionality incrementally until the monolith is no longer needed.
Standard migration vocabulary sequence:
The term comes from the strangler fig tree, which grows around an existing tree and eventually replaces it. The migration metaphor is precise: new services grow alongside the monolith, taking over functionality incrementally until the monolith is no longer needed.
| Concept | Vocabulary |
|---|---|
| Strangler fig migration | Incremental extraction; route-level strangling; facade routing; coexistence period; gradual decommission |
| Big-bang rewrite | The anti-pattern — full parallel rewrite with hard cutover; high risk; rarely succeeds as planned |
| Strangler facade | A routing layer (often an API gateway or reverse proxy) that directs requests to either the monolith or the new service based on the migration state |
Standard migration vocabulary sequence:
- "Identify the seam" — find a cohesive capability with a clear external interface to extract first
- "Build alongside" — develop the new service without touching the monolith
- "Reroute traffic" — use the strangler facade to redirect the extracted capability to the new service
- "Dark launch / shadow mode" — run both in parallel, compare outputs before committing
- "Strangle" — remove the capability from the monolith once the new service is proven