FREE Systems LESSON · Systems
Design the whole operating system
Evolution, migrations, cost, and complete system judgment
A system design is incomplete until it explains change.
Schemas evolve, traffic shifts, dependencies fail, teams deploy independently, and old clients remain. Safe evolution uses compatibility windows, versioned contracts, staged migrations, observable dual paths, backfills with checkpoints, and explicit rollback. Capacity and reliability budgets must include the transition state, when two representations or systems may operate at once.
The migration is part of the architecture, not a temporary footnote.
Temporary migration code has a habit of becoming infrastructure.
Dual writes can diverge, backfills can overload storage, shadow reads can leak cost, and flags can outlive their owners. Give transitions invariants, metrics, rate limits, owners, deadlines, and deletion criteria. Rehearse rollback before crossing an irreversible boundary such as deleting the only trusted copy.
Every temporary path needs an exit contract.