**同时向旧库和新库双写,在后台回填(backfill)历史数据,用 CDC 追上尾部,通过影子读(shadow reads)验证,然后原子地切换读——在每一步都留有回滚路径。**你从不让应用停机;你让两个数据库并行运行,直到新库被证明完全一致,然后切换(cut over)。
架构
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)
