Eski ve yeniye dual-write yapın, geçmişi arka planda backfill edin, kalanı yakalamak için CDC kullanın, shadow read'lerle doğrulayın, sonra okumaları atomik olarak flip'leyin — her adımda bir rollback path ile. Uygulamayı asla kapatmazsınız; yeni olan kanıtlanabilir şekilde özdeş olana kadar her iki veritabanını paralel çalıştırırsınız, sonra cutover yaparsınız.
Mimari
┌── 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)
