旧と新にダブルライトし、履歴をバックグラウンドでバックフィルし、CDCで末尾を追いつかせ、シャドウリードで検証し、その後読み取りをアトミックに切り替えます。各ステップにロールバックパスを備えます。 アプリを決して停止せず、新DBが証明可能に同一になるまで両DBを並行稼働させ、その後カットオーバーします。
アーキテクチャ
text
┌── 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)
