Skip to content
All notes
EngineeringMay 18, 20266 min read

Modernize without the rewrite: the strangler-fig way

By Ava Lindqvist

Every legacy system is someone's hard-won knowledge, encoded badly. The instinct to throw it all away and start fresh is understandable — and almost always a mistake. A rewrite freezes feature work, hides risk until the very end, and asks everyone to trust that the new thing will be better before a single user has touched it.

Grow the new around the old

The strangler-fig pattern takes its name from a vine that grows around a host tree until it can stand on its own. Applied to software, you route a slice of traffic through new, well-tested code while the old system keeps running. Each slice is small, shippable, and reversible.

  • Pick the highest-risk seam, not the easiest one.
  • Put a test harness around the legacy behavior first.
  • Ship the new path behind a flag and compare results before cutting over.

Why reversible matters

The point isn't speed for its own sake. It's that at no moment are you betting the company on a flag day. If a slice misbehaves, you flip the flag back and nobody notices. That safety is what lets the team keep shipping features the whole time.

A migration you can roll back at any moment isn't a migration — it's just Tuesday.
ShareXLinkedIn

Have a build in mind? Let's chart it.

Tell us where you're headed. We'll reply within one business day with a clear, senior take — no sales theatre, no obligation.