Migration discussions often begin with CDC products, replicas and dual writes. Rehearsals end up focused on a different question: if something goes wrong, how far can the team roll back without losing or conflicting with new writes? That question should shape the architecture before a replication tool is selected.
Define downtime per business flow
A single RTO or RPO for the entire service hides meaningful differences. Search results may tolerate several minutes of lag while payments cannot lose a single confirmed write. Map login, order creation, reporting and back-office changes separately, then state what may pause and for how long.
This keeps the design proportional. A short write freeze can be safer than weeks of dual-write logic when the affected workflow and change volume are small.
Separate schema compatibility from data movement
Use an expand, migrate and contract sequence. Deploy additive schema changes first, make application versions tolerate both structures, move data, switch reads and writes, then remove the old path after observation.
Give temporary compatibility code an owner and removal date. Otherwise a migration mechanism becomes permanent product complexity.
Validate business state, not only replication state
Zero replication lag does not prove that the target is correct. Compare counts and checksums, but also verify business totals, state transitions, relationships and records changed during the final window.
Run the same automated checks during every rehearsal. Failed checks should expose sample keys immediately so engineers can investigate instead of rebuilding queries during cutover.
Put an expiry time on rollback
Once the target accepts writes that cannot be replicated back, rollback is no longer a switch. The runbook must state the start condition, completion condition, maximum wait and the metric that stops each step.
Rehearsals should include replication delay, failed validation, missing permissions and an unavailable approver. The gaps that matter usually appear outside the happy path.