HomeComputer ScienceZero-Downtime Data Migration: Dual-Write & Backfill Lab

Zero-Downtime Data Migration: Dual-Write & Backfill Lab

Interactive expand-contract database migration simulator: watch dual-writes, a live backfill job and two competing consistency strategies (optimistic CAS vs blind overwrite) migrate 160 records from an old store to a new one, with a real race-condition data-loss bug you can trigger and see.

Computer Science3DModerate60 FPS📱 Mobile-adapted⇄ 2D version
mobile-app-migration-strategies ↗ Open standalone

Mobile and web backends rarely migrate a database in one atomic step — instead they run the "expand–contract" pattern: add the new store, dual-write to both, backfill the history, verify, then cut over. This simulator renders 160 live records as two grids of instanced cubes — an old store and a new one — and runs a real backfill worker between them while simulated traffic keeps writing. Switch between an optimistic compare-and-swap backfill strategy, which self-heals by retrying any record a write raced against, and a naive blind-overwrite strategy, which silently loses the newer value and flashes a real conflict. Tune the write rate and backfill rate to open or close the race window and watch the consistency-lag and conflict counters respond live.

⚙ Under the hood

Interactive expand-contract database migration simulator: watch dual-writes and a live backfill job move 160 records from an old store to a new one, then compare an optimistic CAS strategy against a naive blind-overwrite strategy that silently loses data in a race condition.

database migrationexpand-contractdual-writebackfilldistributed systemsconsistency

3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)