📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials Data Engineering Data Contracts

Data Contracts

5 min read Quiz at the end
Data contracts formally define schema, SLOs, and quality rules between producers and consumers.

Data Contracts

Data contracts are formal agreements between data producers and consumers — defining schema, SLOs, and data quality rules.

# Data contract YAML (OpenDataContract standard)
apiVersion: 2.2.2
kind: DataContract
id: urn:ezycoders:orders.completed:v2
info:
  title:   Orders Completed
  version: 2.0.0
  owner:   orders-team@company.com
  status:  active
  slo:
    freshness:    30 minutes
    availability: 99.9%

servers:
  production:
    type:     bigquery
    project:  myproject
    dataset:  analytics
    table:    fct_orders

models:
  - name: fct_orders
    fields:
      - name:        order_id
        type:        string
        required:    true
        unique:      true
        description: Unique order identifier
      - name:        amount
        type:        number
        minimum:     0
        maximum:     1000000
      - name:        status
        type:        string
        enum:        [completed, pending, cancelled, refunded]

# Validate contract with soda-core
# soda scan -d snowflake -c soda_config.yml orders_contract.yml

# Python validation
from datacontract.model.data_contract_specification import DataContractSpecification
contract = DataContractSpecification.from_file("orders_contract.yaml")
result   = contract.test()  # runs all quality checks