পুরনো ও নতুন-এ dual-write করুন, background-এ history backfill করুন, tail catch up করতে CDC ব্যবহার করুন, shadow read দিয়ে verify করুন, তারপর read atomically flip করুন — প্রতিটি ধাপে একটি rollback path সহ। আপনি কখনও app down করেন না; আপনি দুটি database সমান্তরালে চালান যতক্ষণ না নতুনটি প্রমাণযোগ্যভাবে অভিন্ন, তারপর 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)
