old మరియు new కి dual-write చేయండి, background లో history ను backfill చేయండి, tail ను catch up చేయడానికి CDC వాడండి, shadow reads తో verify చేయండి, తర్వాత reads ను atomic గా flip చేయండి — ప్రతి step వద్ద ఒక rollback path తో. మీరు ఎప్పుడూ app ను down చేయరు; new one provably identical అయ్యే వరకు రెండు databases ను parallel గా run చేసి, తర్వాత cut over చేస్తారు.
ఆర్కిటెక్చర్
┌── write ──▶ OLD DB (source of truth) ──CDC (Debezium)──┐
App ───┤ ▼
└── write ──▶ NEW DB ◀──── backfill job (historical rows)
│
shadow reads (compare OLD vs NEW) ─▶ diff metrics ─▶ atomic cutover ─▶ NEW is truth
(flip flag; rollback = flip back)
