Schema Drift
Divergence between a schema and the code, types, or documentation that describe it.
Schema drift is the gap that opens between a data model and everything else that claims to describe it: generated types, validation rules, documentation, tooling, and the assumptions embedded in code.
The reliable defence is generation plus verification. Types derived from the schema cannot drift by construction, and a build step that regenerates them and fails on any difference converts drift into a red build rather than a runtime surprise. Worth knowing: such a check can be triggered by changes that seem purely cosmetic, since documentation text on a field is frequently emitted into the generated output.
Drift also travels along the type graph in ways a diff cannot show. Relaxing a required field to optional widens its generated type, which breaks every reader in the codebase — including readers written after the change was started, which appear in neither the conflict list nor the change's own diff. The type checker, not the merge, is the detector. See Semantic Conflict.
A related asymmetry causes real bugs: a system may advertise a richer schema through its introspection surface than its write path actually accepts. Readers then learn about fields that writes reject. Keeping the two in lockstep — ideally with a test asserting the read model equals the write model — is what closes it.
See also6
Hand-picked in the note itself — the neighbours worth reading next.
Relational Database
Data organised as tables with declared relationships, queried declaratively and guarded by constraints.
Data & Content8 connections
Schema Validation
Checking data against a declared shape at runtime, and using the result as the typed value.
Agents & Language Models11 connections
Documentation Rot
Documentation that has drifted from the system it describes, and is now worse than none.
Method20 connections
Database Migration
A versioned, ordered change to a database schema, applied once and recorded.
Data & Content5 connections
Deprecation
Marking something as superseded and scheduled for removal, without removing it yet.
Method9 connections
Client-Server Boundary
The line in an application where execution moves from the server to the browser.
Web Platform10 connections
Related2
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from7
Notes elsewhere in the wiki that reach for this one.
- Client-Server BoundaryWeb Platform
The line in an application where execution moves from the server to the browser.
- Database MigrationData & Content
A versioned, ordered change to a database schema, applied once and recorded.
- DeprecationMethod
Marking something as superseded and scheduled for removal, without removing it yet.
- Documentation RotMethod
Documentation that has drifted from the system it describes, and is now worse than none.
- Relational DatabaseData & Content
Data organised as tables with declared relationships, queried declaratively and guarded by constraints.
- Schema ValidationAgents & Language Models
Checking data against a declared shape at runtime, and using the result as the typed value.
- Semantic ConflictVersion Control & Delivery
Two changes that merge cleanly and are incompatible in meaning.