Comparison
Data contractvsUpstream drift
Data contract
the source team's deploy pipeline fails if they remove a field your models depend on, because the expectation is written down and checked.
An explicit, enforced agreement between a data producer and its consumers covering schema, semantics, freshness and how change is communicated. The word 'enforced' is the entire point: a document nobody's CI reads is a wish. It moves the cost of a breaking change from the consumer discovering it at 09:00 to the producer discovering it at commit time, which is the only version of this that survives contact with a busy product team.
Full entry →Upstream drift
the source team changed a status code's meaning, the pipeline kept running, and your funnel report has been wrong since Tuesday.
The producing system changing behaviour — semantics, encoding, defaults, volume — without changing anything your pipeline validates. It is worse than a schema break precisely because nothing fails: the types still match and the numbers are merely wrong. The defences are semantic tests rather than structural ones, and a contract with the producer that says which changes require notice.
Full entry →