old와 new에 이중 write하고, 백그라운드에서 히스토리를 백필(backfill)하며, CDC로 꼬리(tail)를 따라잡고, shadow read로 검증한 뒤, read를 원자적으로 전환하십시오 — 모든 단계에 롤백 경로를 두고. 앱을 절대 내리지 않고, new가 검증 가능하게 동일해질 때까지 두 데이터베이스를 병렬로 돌린 뒤 cutover합니다.
아키텍처
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)
