# Documentation rots; CI does not

Canonical URL: <https://datadriven.io/problems/documentation-rots-ci-does-not-a-contract-that-lives-as-a-d1c27ff4>

Domain: Pipeline Design · Difficulty: medium

## Problem

Documentation rots; CI does not. A contract that lives as a YAML file in a wiki page is fiction within six months because the producer evolves and the wiki does not. The section's mechanism is a versioned contract checked into the producer's repo and validated in CI on every change so violations cannot ship. The contract names schema (primary key, fields, types, nullability), guarantees (operational SLA, quality SLA), and evolution policy. Author the contract by adding a CI runner node on the producer side that validates the contract on every PR, and an ingestion-gate quality check on the pipeline side that enforces the same contract on real events.

## Related

- [All practice problems](https://datadriven.io/problems)
- [Mock interview mode](https://datadriven.io/interview/documentation-rots-ci-does-not-a-contract-that-lives-as-a-d1c27ff4)
- [System Design Interview Questions](https://datadriven.io/data-engineering-system-design)
- [Data Engineering Interview Prep Guide](https://datadriven.io/data-engineer-interview-prep)
- [Daily Challenge](https://datadriven.io/daily)

---

Source: DataDriven (https://datadriven.io). 100% free data engineering interview prep. Live code execution against Postgres 16, Python 3.11, and Spark sandboxes. No paywall, no premium tier, no signup gate.