Best for
- The pipeline that breaks every time the app team ships
- Formalising what the warehouse may rely on from each source
- Making 'who broke the dashboard' a question with a contract to check
What you give it
- The data flow: who produces what, who consumes it for what, and the incidents you are tired of
What you get back
- The contract: schema with semantics per field, delivery and freshness promises, quality guarantees with their thresholds
- The change protocol: what the producer may change freely, what needs notice, what needs negotiation — with notice periods
- Enforcement hooks: the checks that verify the contract at the boundary, so violations page the producer, not the consumer
How it works
- Derives the contract from consumer needs backwards: what do the consumers actually rely on — fields, semantics, timing — and what have past breakages taught?
- Pins semantics, not just types: the currency, the units, the time zone, the inclusivity of amounts — the incidents live in semantics.
- Makes promises measurable: freshness as a deadline, completeness as a threshold, quality as named rules — a contract that cannot be checked is a wish.
- Installs the boundary checks that make violations the producer's page instead of the consumer's mystery.
Example
You: The orders feed breaks our finance pipeline monthly. Write the contract.
Result: The contract: the feed's schema with semantics pinned (amount is minor units, tax-inclusive, in the currency column's currency — three past incidents came from assuming otherwise), freshness promised at hourly with a 09:00 completeness gate for finance's daily close, quality floors set (order_id unique, never null, amounts non-negative except the refund type), and the change protocol: additive fields free with notice, type changes and semantic changes need 30 days and a migration path. The boundary checks now run on arrival; the next violation paged the producing team at 08:40 — before finance ever saw it. Breakage since: zero.
Limits — please read
- A contract binds by agreement; it structures the negotiation but both teams must actually sign.
- Legacy producers may be unable to promise what consumers need; the contract then documents the gap honestly and the consumers defend accordingly.
- Contracts per feed multiply; it prioritises the feeds whose breakage costs most.