Skip to content
Preptima
hardScenarioDesignSeniorStaffLead

You are moving a sharded datastore to Cassandra with no maintenance window. How do you cut over, and how do you know both copies agree before you do?

Replicate from the source's change log rather than dual-writing from application code, backfill with each row's original write timestamp so history can never overwrite live data, then run continuous range checksums and shadow reads until divergence is understood rather than merely small. The read flip and the write flip are separate steps, each reversible.

6 min readUpdated 2026-08-15

Answer

Short answer

For a Cassandra cutover with no downtime, start change-data-capture first, backfill with original write timestamps, then reconcile with range checksums and shadow reads. Flip reads and writes separately so each step is reversible, and do not treat a tiny unexplained mismatch rate as acceptable until every mismatch category is understood.

Mention data migration where it changes the risk, the owner, or the next check.

Was this answer helpful?

Likely follow-ups

  • How do you migrate rows that were deleted in the source before the backfill reached them, without resurrecting them?
  • Your reconciliation reports 0.002 per cent divergence and it is not falling. What do you do before the read flip?
  • Which operations in the old store have no equivalent once the data is in Cassandra, and how do you replace them?
  • After the write flip, how long do you keep the old store, and what would make you go back to it?

Related questions

Further reading