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.