LEARNING LAB / CONTRACTS
Data Contract Lab
Will this upstream change break a reader?
Compare producer promises with consumer expectations, replay the same events against both versions, and inspect the evidence. All checks run in your browser.
Browser-local · No uploads · Synthetic examplesFour experiments. One explicit direction.
New producer → existing consumer. A changed contract is a promise; replayed samples are observations. Neither executes your production implementation.
DCL/1 is a restricted contract language, not a full JSON Schema validator. Unsupported keywords are input errors.
Follow the six-unit reading and repair exercise →
Paste an input bundle
Limits: 2 MB per input; 500 JSONL rows; 12 consumers; schema depth 8 / 160 nodes. A trailing newline is allowed. Interior blank lines are errors.
Validation report
Samples can expose a failure, but cannot establish universal behavioral compatibility. “Proven inclusion” refers only to structural value sets in DCL/1. Semantic checks rely on explicit declarations.
Producer → consumers
Both producer-contract directions
Same rows, both contracts
| Line | Result | Old: structure / semantics | New: structure / semantics | Introduced / resolved / unchanged |
|---|
All validation errors
| Line | Stage | JSON Pointer | Code | Message |
|---|
Save evidence
JSON and readable exports include the supplied contracts and names, generated witnesses and diagnostics. Raw event values are omitted. CSV prefixes formula-like cells and quotes every field; do not remove those guards when importing into a spreadsheet.