techdiagrams.net
← All templates

Strangler-fig migration

Escaping a monolith without a big-bang rewrite: a routing facade shifts traffic route by route while an anti-corruption layer and backfill keep both worlds consistent.

Open in editor — free, no login Download JSON
THE OLD WORLD — BEING STRANGLEDTHE NEW WORLD — EARNING TRUST ROUTE BY ROUTE100% of trafficunmigrated routesorders routes · 20% and risingneeds legacy customer datatranslated legacy callscopy historyverified rowsTrafficunchanged clientsRouting facadeper-route: 80% old · 20% newLegacy monolithshrinking · frozen featuresLegacy DBstill authoritative (for now)Anti-corruption layerlegacy model → clean modelNew Orders serviceclean domain · new stackBackfill + verifycopy history · diff · reportNew DBauthoritative after cutoverdark reads: for migrated routes the facade can queryBOTH sides, serve the old answer, and log any diff.Cutover happens when the diff rate is zero for a week —confidence measured, not assumed.

What this design does

The only migration strategy with a survival rate: never rewrite in one jump. A facade in front of the monolith peels off one route at a time to the new service, which shields its clean model from legacy quirks through an anti-corruption layer. History is backfilled and verified before cutover, and dark reads compare old and new answers in production before anyone depends on them. The monolith doesn't get killed — it gets strangled, route by boring route.

The patterns it composes

Import it, attach your own numbers, and verify the design against failures — or read the engineering notes.