Computing Library › Data Systems
Data Systems

Schemas and Data Contracts

A schema defines a dataset's structure and types; a data contract makes that definition a binding agreement between producer and consumer.

Agreeing on shape

A schema describes what a dataset looks like: the fields, their types, which are required, and constraints on their values. It lets a consumer know what to expect and lets a system validate data automatically. Without a schema, every consumer must guess the structure and cope with surprises.

Schema roles

Kronos motion — data assimilation

Data contracts

A data contract elevates a schema into an agreement. The producer commits to delivering data that conforms, with defined types, semantics, freshness, and quality; the consumer builds against that guarantee. When the producer wants to change the data, the contract governs how, so downstream systems are not broken silently. This is the antidote to fragile pipelines that break whenever an upstream field changes.

Schema evolution

Requirements change, so schemas must evolve without breaking existing readers. Backward-compatible changes (adding an optional field) let old readers keep working; breaking changes (removing or retyping a field) require coordination and versioning. Serialization formats such as Avro and Protobuf have explicit rules for compatible evolution.

In practice

For a research program, schemas define the structure of diagnostic records, simulation outputs, and the published datasets, so that a figure-generating step can rely on its inputs having a known shape. Combined with validation, a schema turns malformed data into an early, loud failure rather than a silent corruption discovered much later. It is the structural contract that keeps a pipeline honest.