Skip to content
<UK/>

LEGACY MIGRATION SIMULATOR

Strangler Fig

Move a fictional monolith to a new system one workflow at a time, behind a routing facade. No big-bang weekend: every step has a price and a risk.

Fictional estate · teaching model
  1. Build the routing facade.
  2. Each sprint, spend the team’s capacity: build, dual-run and route modules.
  3. Retire the legacy code, and watch tickets, drift and upkeep.

Sprint
0 / 12
On the new system
0%
Support tickets
00 this sprint
Data out of sync
0records
Capacity next sprint
10 / 12 pts
First users moved
Not yet

The estate

Sprint 0
  • Star size: daily usage
  • Colour: risk (teal low, amber medium, coral high)
  • Violet ring: uses legacy session code (dashed until the session bridge is in place, then solid)
  • Line: shared tables (amber dashes: drifting)
  • Teal dashes: kept in sync by a sync bridge
  • Faint outline: legacy code still there, the rollback path
  • Coral pulse: tickets in the sprint shown
Modules

Pick one to see its steps.

Sprint log

Sprint 0

Run a sprint to see what happened.

Directory & notices

Staff directory

On the monolith

Look up a colleague’s desk, phone and team.

Daily usage
10 / 10
Build effort
2 pts
Risk
Low risk
Data
Reads only
Session
No shared session code
Shares tables with
Announcements

Users are served by the monolith.

Steps for this module

  • Build the new version

    2 pts

    Gain Ready to dual-run or route next sprint. No user sees it yet.

    Risk Delivers nothing until traffic moves to it.

Sprint 1 plan

0 of 10 points planned
Monolith upkeep
2
Dual-run triage
0
Double maintenance
0
Hotfixes
0

Nothing planned yet. Pick a module, or let the suggestion fill the sprint.

Suggestions use only what you can see, never the hidden defects.

Transitional architecture

  • Routing facade

    3 pts

    Gain Every request passes through one router you control. No module can move without it.

    Risk Transitional architecture: built to be removed at the end, and it must not become a single point of failure or a bottleneck. This model charges only for building it.

  • Session bridge

    2 pts

    Gain Modules that still rely on the monolith’s session code can be dual-run and routed.

    Risk One more temporary piece to keep working and later remove. This model charges only for building it.

Sync bridges, one per group of shared tables

Gain Two-way sync: an initial load plus change data capture in both directions keeps the old shared tables and the new stores in step. Reconciles what is already out of sync, stops new drift and lets dual-runs compare writes.

Risk In reality it needs looking after until the whole cluster has moved, and change data capture lags. This model charges only for building it and treats it as instant.

  • Facilities
  • Assets & access
  • Finance
  • People

Same estate as a big-bang rewrite

  • Your migration
  • Big-bang rewrite
Share of requests on the new system
Support tickets per sprint
Your migrationBig-bang rewrite
First users moved—Sprint 4
Tickets so far0255
Worst sprint0180
Legacy switched off—Sprint 8
Average share on the new system——

The rewrite gets the same team, build effort, upkeep and hidden defects, and it pays for one bulk copy of each group of shared tables. It builds no facade or bridges and runs no dual-runs. It is also the best case: its scope is fully known up front and nothing changes while it is built. So in this model it can finish sooner, and over the full twelve sprints it can even carry more traffic on average. What it gives up: no user benefits before sprint 4, every hidden defect reaches users in the same sprint, and the only rollback is the whole system.

Sprint by sprint
SprintYour migration: On the new systemYour migration: Support ticketsBig-bang rewrite: On the new systemBig-bang rewrite: Support tickets
1——0%0
2——0%0
3——0%0
4——100%180
5——100%75
6——100%0
7——100%0
8——100%0
9——100%0
10——100%0
11——100%0
12——100%0

Wave plan

The order you moved modules in, why, how each was verified and how to back out. Built from your run.

Model, not reality

Everything here is authored for teaching. The monolith, its twelve workflows, the usage figures, the hidden defects, the tickets and the record counts are invented; none of it comes from a real system or employer. Routing is all-or-nothing per module, where a real facade can move a percentage of traffic. The facade and bridges cost only their build here; real transitional architecture also has to be looked after and, at the end, removed. The sync bridge is two-way and instant, where real change data capture lags. There are no schema changes, and people, budgets and politics are left out. Costs are points for a made-up team of fixed size. Use it to reason about order and trade-offs, not to estimate a project.

Go deeper in the LabSCHEMA SHIFTPlan a zero-downtime migration with expand/contract steps, backfill and compatibility gates. (opens in a new tab)

Where the rules come from