Adding a new column sounds simple. It isn’t — not if your system runs at scale, serves millions of requests per hour, and cannot go down. The technical details matter. Poor planning can stall deployments, corrupt data, or cause silent failures.
A new column in a relational database means altering the table definition. With MySQL or PostgreSQL, ALTER TABLE ADD COLUMN is common, but the operation’s cost depends on engine, storage, and field type. On smaller datasets, it’s instant. On large ones, it can lock the table, block writes, or trigger full table rewrites.
In distributed systems, schema changes must be backward-compatible. You can’t just add a non-nullable column with no default unless all writes and reads know about it. The safer process is: add the column as nullable, deploy code that writes to both old and new columns, backfill values in batches, then make the column required once all rows are populated.