Staging parity traps before go-live

Published November 2024 · Stack Ridge team

Engineers reviewing deployment checklist on a whiteboard

A migration checkpoint engagement stalled on day one because staging used Latin1 collation while production used UTF8. Identical queries, different sort plans, different index choices after the schema split.

Volume is only one axis

Teams often restore a 5% sample and call it good. Planner thresholds for sequential vs. index scans depend on absolute row counts—5% of a billion is still huge, but 5% of a million may hide bad joins that appear only at full scale.

Replica lag and read routing

If production sends reporting to a replica with delayed statistics refresh, staging must model that path. Otherwise you tune against primary plans that reporting never uses.

Checklist we use

  1. Match collation, isolation level defaults, and connection pool limits.
  2. Replay the top ten slow queries from production logs against staging after anonymized restore.
  3. Document acceptable plan drift before change window—not after rollback.

See how migration checkpoints fit our process