Adding a new column should be simple. In practice, it can break deploys, block requests, and damage data integrity if done without care. The core challenge is making the schema change without downtime or inconsistent reads. For high-traffic systems, that means planning every step, from database locks to application rollouts.
A new column changes how your code and database interact. Before you run ALTER TABLE, confirm default values, nullability, and indexing strategy. Adding an index during column creation can lock writes. Adding a column with a default on large tables can block the table for minutes or hours. On production systems, consider adding the column first, then backfilling data in batches to prevent long locks.
For distributed systems, ensure all services understand the schema before writing to it. Rolling deploys must handle old and new versions of the schema in parallel. Feature flags can help, but only if the application checks for the existence of the column before attempting writes.