Zero-downtime database migrations: the expand and contract pattern
Schema changes are where zero-downtime deploys usually break. How to rename columns, split tables and add constraints in small backward-compatible steps, backfill safely and keep old and new code working at the same time.
