Read models drift. Rebuilds are inevitable. Downtime is optional.
Versioned Strategy
- Build V2 projection in parallel.
- Compare V1/V2 on sampled traffic.
- Shift cohorts gradually.
- Keep rollback path warm.
if cohort(userId) == "canary":
query(V2)
else:
query(V1)Confidence comes from diff quality, not migration speed.