Browse
Schema Evolution & Versioning
Changing a shared schema without breaking every downstream consumer that depends on it.
What it is
Schema evolution is the discipline of changing a data schema over time — adding fields, changing types, deprecating columns — without breaking the many downstream consumers (dashboards, pipelines, ML features) built against it.
Key points
- Backward-compatible changes (adding a new nullable column) are usually safe; breaking changes (renaming or removing a column, changing a type) require coordinated migration across every consumer.
- Schema registries (common in streaming systems) enforce compatibility rules at write time, rejecting a schema change that would break existing consumers before it ships.
- Versioned schemas: publishing a new schema version alongside the old one for a deprecation window gives consumers time to migrate instead of breaking on a single cutover date.
- The organizational cost of a breaking schema change usually exceeds the technical cost — this is why schema changes to widely-used tables typically go through a governance review, not just a code review.
