Skip to content

Schema-on-Write vs. Schema-on-Read

Validating data structure at write time catches errors early but requires schema changes for new data shapes; validating at read time accommodates heterogeneous data but defers error detection and risks runtime failures.

Tension Addressed

Schema Rigidity vs. Flexibility

Recognizable As

Strongly-typed columns vs. JSON blobs, migration scripts vs. reader adaptation, compile-time vs. runtime errors, static vs. dynamic typing for data

Canonical Sources

Kleppmann, "Designing Data-Intensive Applications" (2017); Helland, "Immutability Changes Everything" (2015)

Transfers To

Static vs. dynamic typing, API versioning, data serialization formats, configuration validation, any data interchange boundary

Neither approach is universally superior; schema-on-write suits well-understood domains with high data quality requirements, while schema-on-read suits exploratory or rapidly evolving systems.