पुरानो र नयाँ दुवैमा dual-write गर्नुहोस्, पृष्ठभूमिमा history backfill गर्नुहोस्, tail catch up गर्न CDC प्रयोग गर्नुहोस्, shadow read सँग verify गर्नुहोस्, अनि read atomic रूपमा flip गर्नुहोस् — हरेक चरणमा rollback path सहित। तपाईं कहिल्यै app down गर्नुहुन्न; नयाँ database प्रमाणित रूपमा समान नहुँदासम्म दुवै database समानान्तर चलाउनुहुन्छ, अनि cut over गर्नुहुन्छ।
आर्किटेक्चर
┌── 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)
