A phased plan for changing a schema that is serving live traffic. Built on expand-and-contract: every step is independently deployable and independently reversible, so no release is a point of no return.
When to use it
Any schema change where the old and new code must run at