Dictionary

Data contract

Een data contract is een expliciete afspraak tussen de producent en consument van een dataset: welk schema, welke kwaliteit, welke frequentie, welke eigenaar. Zonder contract leeft data op goodwill, en dat schaalt niet.

Wat is een data contract?

Een data contract is een expliciete, machineleesbare afspraak tussen de producent van een dataset en de consumenten ervan. Het beschrijft het schema (kolommen, types, verplichte velden), de kwaliteitseisen (geen nulls op een sleutel, geen duplicaten), de frequentie van updates, de eigenaar en de procedure voor wijzigingen. Zodra je data produceert voor anderen, word je ook verantwoordelijk voor wat je belooft.

Data contracts zijn rond 2022 populair geworden binnen het data mesh-gedachtegoed, maar staan er los van: ook in klassieke datateams voegen ze veel waarde toe. Ze brengen dezelfde discipline die API's in softwareland al lang hebben naar de wereld van tabellen en streams.

Je kan een data contract vergelijken met een handelscontract tussen twee bedrijven. Mondelinge afspraken werken zolang de volumes klein blijven en iedereen elkaar kent. Zodra er meerdere partijen bij betrokken zijn of wanneer er veel geld op het spel staat, wil je zwart-op-wit wat er verwacht wordt.

Waarom data contracts?

Zonder data contract lopen datapipelines typisch tegen drie problemen aan.

Breaking changes zonder waarschuwing
Een databaseteam hernoemt een kolom of wijzigt een datatype. Downstream breekt er van alles. De producent wist niet dat jouw team op die kolom rekende.

Verwarring over semantiek
Is omzet inclusief btw of niet? Rekent de kantelingsdatum vanaf booking of vanaf delivery? Zonder expliciete definitie staat elke consumer een andere waarheid in zijn rapporten.

Geen duidelijke verantwoordelijkheid
Wanneer de data fout is, wie lost het op? Zonder contract wijst iedereen naar de volgende.

Een data contract zet al die afspraken vast en maakt ze testbaar. Een nieuwe release van de bron wordt geblokkeerd als ze het contract breekt. Net zoals bij een publieke API.

Wat zit in een data contract?

Schema
Alle velden met hun types, verplicht of optioneel, met betekenis per veld. Vaak geformuleerd in JSON Schema, Avro, Protobuf of een YAML-variant.

Semantische definitie
Wat betekent elk veld inhoudelijk, in bedrijfstermen? OrderDate is de datum waarop het order werd gecreëerd in het bronsysteem, niet de verzenddatum.

Kwaliteitseisen
Unieke sleutels, verwachte waardebereiken, referentiële integriteit, percentage nulls dat toegelaten is, verwachte volumes per run.

SLA
Wanneer is de data beschikbaar (elke dag om 07:00), hoe vers (niet ouder dan 15 minuten), hoe stabiel (beschikbaarheid 99,5 procent).

Eigenaar en contactpunt
Welk team is verantwoordelijk, via welk kanaal kunnen consumers vragen stellen, incidenten melden, wijzigingen aanvragen.

Versiebeheer
Hoe worden wijzigingen uitgerold? Welke garanties op backward compatibility, hoe lang blijft een oude versie draaien, hoe communiceer je deprecations.

Data contracts in de praktijk

Een gezonde workflow rond data contracts doorloopt meestal deze stappen:

  1. Contract ontwerpen. Producer en consumers werken samen aan een eerste versie. Dit gesprek alleen al legt vaak misverstanden bloot die jaren onbesproken bleven.

  2. Contract publiceren. Het contract komt in een repository (Git, een catalog, een speciale data contract tool). Het is versie-gecontroleerd.

  3. Tests genereren. Het contract levert automatisch tests op in je ETL-pipeline. Bij elke run worden schema en kwaliteit gevalideerd. Failing tests blokkeren de verdere stappen.

  4. Changes proposes via een pull request. Wie de bron wil wijzigen, stelt dat voor in het contract. Breaking changes vereisen expliciete toestemming van de consumers of een compatibiliteitsperiode.

  5. Monitoring en incidenten. Wanneer een consument een SLA-overtreding meldt, gebeurt dat tegen het contract. Geen discussies over wat had moeten, enkel over wat afgesproken is.

Tools en standaarden

Open Data Contract Standard
Een YAML-gebaseerde standaard die onder de Bitol-community leeft. Goede starter om schema, SLA en eigenaarschap te formaliseren.

dbt contracts
dbt ondersteunt contracts op modellen: kolomtypes en verplichte kolommen worden bij de build gecontroleerd.

Great Expectations, Soda Core
Datakwaliteitstools die kwaliteitsregels uit contracts kunnen afdwingen in de pipeline.

Schema registry's
Voor streaming-data (Kafka) bestaat de Confluent Schema Registry al langer en is vergelijkbaar met contracts op berichtniveau.

Microsoft Purview
In Microsoft-stacks kan Purview definities, classificaties en eigenaarschap vastleggen en koppelen aan data lineage. Nog niet volledig hetzelfde als een data contract, wel een bouwsteen.

Wanneer heb je data contracts nodig?

  • Meerdere teams produceren en consumeren data van elkaar. Zodra je drie of meer teams hebt, worden informele afspraken onhoudbaar.

  • Data voedt klantgerichte producten. Een fout cijfer in een interne rapport is vervelend. Een fout cijfer in een klantendashboard of in een AI-agent is een crisis.

  • Compliance-gevoelige data. Financiële rapportering, medische gegevens, gegevens onder de GDPR. Het contract ondersteunt ook de audittrail.

  • Decentraal data-landschap. Data mesh of een federatief model werken niet zonder contracten. De autonomie van domeinen vereist duidelijke interfaces.

Valkuilen

Contract als dictaat
Een contract dat de producent eenzijdig oplegt, wordt genegeerd. Beschouw het als een gesprek, niet als een document.

Te zware overhead
Voor interne, stabiele datasets met één consumer is een volledig contract overdreven. Reserveer het voor datasets met meerdere consumers of met externe impact.

Enkel schema, geen semantiek
Een contract dat alleen JSON Schema bevat, vangt syntactische breuken op, geen semantische. Price plots in euro in plaats van dollar glipt erdoor.

Geen consequenties
Als het contract kapotgaan geen build breekt, blijft het een goed idee zonder tanden. Koppel het aan CI/CD.

Owner changed teams
Teams reorganiseren en de owner in het contract klopt niet meer. Periodieke review is onderdeel van goede governance.

Laatst Bijgewerkt: April 18, 2026 Terug naar Woordenboek
Trefwoorden
data contract data mesh data product data governance schema sla producer consumer data quality lineage api dbt