Problem
Big-bang rewrites take years, freeze features, and often fail. Starting a strangler migration without a plan leaves two systems running indefinitely with no end in sight.
Also known as: strangler-fig-planning, incremental-migration-roadmap
Plan the replacement of a legacy system slice by slice, with measurable progress and a retirement date.
Big-bang rewrites take years, freeze features, and often fail. Starting a strangler migration without a plan leaves two systems running indefinitely with no end in sight.
Named by Martin Fowler after strangler figs that grow around a host tree, this approach grows the new system around the old one until the old can be removed. Planning matters as much as the technique: sequence, ownership of data, and an end date.
Good slices are vertical and bounded: a capability with a clear interface, limited shared data, and measurable behavior. Avoid slicing by technical layer, since that leaves both systems involved in every request and multiplies coordination.
A facade routes each capability to old or new implementations.
client -> routing facade
/orders/* -> NEW service (100%)
/invoices/* -> split 20% NEW / 80% LEGACY (shadow compare)
/reports/* -> LEGACY
Burn-down: 12 routes remain; legacy decommission target: 2027-03-31
Validate behavior before cutting over. Shadow traffic sends copies of requests to the new service and compares responses without affecting users. Then shift a small percentage, watch error rates and latency, and increase. Keep rollback to the legacy route available until the slice has run cleanly for an agreed period.
Medium - both systems run in parallel
High during migration
Medium
Migration stalls at 80 percent and both systems live forever
Data diverges between old and new owners
New features keep landing in the legacy system