Strangler Fig in Practice: Modernizing Systems That Can't Stop Running
Suresh Venkatesan
Principal Engineer, RippleCode
The most dangerous sentence in enterprise IT: "We'll rewrite it from scratch." Rewrites of running business systems fail so consistently that we treat the strangler-fig pattern — incremental replacement behind a stable facade — as the default for every modernization engagement.
The pattern in brief
Put a routing facade in front of the legacy system. Build replacement capabilities as modern services, and shift traffic to them slice by slice — one domain, one workflow, one endpoint at a time. The legacy system shrinks until what remains can be retired or left as a stable rump.
Choosing the first slice
- High change-demand, low entanglement — you want visible wins that don't require untangling everything
- Read paths before write paths; reporting before transactions
- Avoid the scariest module first — early momentum matters more than early heroics
The data problem is the real problem
Code is replaceable; data synchronization is where strangler projects live or die. Patterns that work: change-data-capture streaming legacy writes to the new system, dual-write with reconciliation during transitions, and one system unambiguously owning each entity at any time.
Keep score visibly
Publish a burn-down: percentage of traffic, endpoints and data ownership migrated. Modernization programs lose funding when progress is invisible. A dashboard showing 14% → 38% → 71% of transactions on the new platform keeps stakeholders committed through the unglamorous middle.