[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"glossary-data-contract::en":3,"gloss-cluster-data-contract::en":23,"gloss-next-data-contract::en":9},{"slug":4,"category":5,"name":6,"definition":7,"meta_desc":8,"faq":9,"schema_markup":9,"related":10},"data-contract","data-infra","Data Contract","A data contract is an explicit, enforced agreement between a data producer and its consumers about the shape and semantics of the data: field names, types, allowed values, freshness guarantees, and what counts as a breaking change. It treats a dataset or event stream like an API — with a versioned schema and a promise not to break it silently.\n\nThe problem it solves is fragile pipelines. In many companies, an engineer renames a column in the app database, and three dashboards and a churn model quietly break downstream because nobody knew they depended on it. A data contract makes those expectations explicit and testable, so a breaking change is caught in CI instead of in production reports.\n\nFor SaaS builders, contracts matter once analytics and ML start depending on your product's data. Practical note: keep contracts lightweight and enforce them automatically — validate schemas at the pipeline boundary, version them, and fail fast when a producer violates one. Start with your highest-value data flows rather than trying to contract everything at once.","A data contract is an enforced agreement on a dataset's field names, types, allowed values, freshness, and what counts as breaking — a dataset treated like an API.",null,[11,14,17,20],{"slug":12,"name":13},"data-catalog","Data Catalog",{"slug":15,"name":16},"data-lineage","Data Lineage",{"slug":18,"name":19},"dead-letter-queue","Dead-Letter Queue (DLQ)",{"slug":21,"name":22},"schema-registry","Schema Registry",[24,28,31,34,37,41,44,47,50,53,57,60],{"slug":25,"category":5,"name":26,"updated_at":27},"acid","ACID","2026-08-24T02:46:37+00:00",{"slug":29,"category":5,"name":30,"updated_at":27},"ann-search","ANN Search",{"slug":32,"category":5,"name":33,"updated_at":27},"backpressure","Backpressure",{"slug":35,"category":5,"name":36,"updated_at":27},"batch-processing","Batch Processing",{"slug":38,"category":5,"name":39,"updated_at":40},"bm25","BM25","2026-08-24T02:46:38+00:00",{"slug":42,"category":5,"name":43,"updated_at":27},"cache","Cache",{"slug":45,"category":5,"name":46,"updated_at":27},"cap-theorem","CAP Theorem",{"slug":48,"category":5,"name":49,"updated_at":27},"change-data-capture","Change Data Capture (CDC)",{"slug":51,"category":5,"name":52,"updated_at":27},"chroma","Chroma",{"slug":54,"category":5,"name":55,"updated_at":56},"chunk-overlap","Chunk Overlap","2026-08-24T03:30:02+00:00",{"slug":58,"category":5,"name":59,"updated_at":27},"columnar-storage","Columnar Storage",{"slug":61,"category":5,"name":62,"updated_at":27},"connection-pooling","Connection Pooling"]