Haz dual-write a la vieja y la nueva, rellena el historial en background, usa CDC para alcanzar el rezago, verifica con shadow reads, luego cambia las lecturas de forma atómica — con una ruta de rollback en cada paso. Nunca bajas la app; corres ambas bases de datos en paralelo hasta que la nueva sea demostrablemente idéntica, luego haces cutover.
Arquitectura
┌── 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)
