FLUIDFLUID
  • Introduction
  • Quickstart
  • Why FLUID
  • FAQ
  • What FLUID Is
  • Core Principles
  • Agentic-Native Layer
  • FLUID vs ODCS / ODPS
  • Anatomy
  • Cheatsheet
  • Full Specification
  • Versions
  • JSON Schema 0.7.5 ↗
  • Reference (HTML) ↗
Examples
How-to
What's New
Deck
GitHub
GitHub
  • Introduction
  • Quickstart
  • Why FLUID
  • FAQ
  • What FLUID Is
  • Core Principles
  • Agentic-Native Layer
  • FLUID vs ODCS / ODPS
  • Anatomy
  • Cheatsheet
  • Full Specification
  • Versions
  • JSON Schema 0.7.5 ↗
  • Reference (HTML) ↗
Examples
How-to
What's New
Deck
GitHub
GitHub
  • Concepts

    • What FLUID Is (and Is Not)
    • Core Principles
    • The Looming Crisis of Context
    • The Agentic-Native Layer
    • FLUID vs ODCS / ODPS
    • The Reference Compiler — forge-cli

🔄 How FLUID Compares to ODCS, Bitol ODPS, and ODPS v4

Four active "open data product" specs share overlapping names and adjacent scopes — three are Linux Foundation projects. This page disambiguates them, shows how they fit together, and presents a capability matrix sourced directly from each spec's published JSON Schema.

TL;DR

  • 🟢 Bitol ODCS — column-level technical contract (schema · DQ · SLA · roles · pricing tier)
  • 🟢 Bitol ODPS — thin product manifest that references ODCS contracts via contractId
  • 🟣 ODPS v4 — commercial wrapper (pricing plans · payment gateways · license · i18n · marketplace)
  • 🔵 FLUID — operational superset (contract + build + orchestration + agentic governance + sovereignty + multi-layer DQ + semantics); compiles to Bitol ODPS+ODCS via forge-cli for ecosystem interop

All four are open source (Apache 2.0; FLUID is MIT). They aren't mutually exclusive — see the diagram below.

Disambiguation — which "ODPS" is which?

AcronymMaintainerLatestWhat it is
ODCS (Open Data Contract Standard)LF AI & Data · Bitolv3.1.0 — Dec 2025Column-level technical contract; producer↔consumer agreement for one dataset
Bitol ODPS (Open Data Product Standard)LF AI & Data · Bitolv1.0.0 — Sep 2025Thin product manifest; bundles ODCS contracts via contractId on input/output ports
ODPS v4 (Open Data Product Specification)LF · Open-Data-Product-Initiativev4.0 — Jul 2025 · v4.1 — Oct 2025Business + commercial wrapper: pricing · license · multi-language · marketplace
FLUIDopen-data-protocolv0.7.3 — this repoEnd-to-end operational contract: schema + build + orchestration + agentic governance + sovereignty + semantics

How they actually fit together

flowchart LR
    classDef core fill:#5B8DEF,color:#fff,stroke:#1E3A8A,stroke-width:4px,font-weight:bold
    classDef opt  fill:#94A3B8,color:#fff,stroke:#475569,stroke-width:1px,stroke-dasharray:6 3

    F["FLUID v0.7.3<br/>your .fluid.yml<br/>standalone — complete on its own"]:::core

    FC["forge-cli<br/>reference compiler<br/>(emits IaC + Airflow DAGs)"]:::opt
    BIT["Bitol ODPS + ODCS<br/>(catalog interop)"]:::opt
    V4["ODPS v4 wrapper<br/>(commercial publishing)"]:::opt

    F -.->|"want compile + deploy?"| FC
    F -.->|"want catalog interop?"| BIT
    F -.->|"want commercial publishing?"| V4

    click F "https://github.com/open-data-protocol/fluid"
    click FC "https://github.com/Agenticstiger/forge-cli"
    click BIT "https://github.com/bitol-io"
    click V4 "https://github.com/Open-Data-Product-Initiative/v4.0"

FLUID stands on its own. The boxes above (with dashed borders) are optional adapters — pick only what you need. Most teams start with just FLUID, then add forge-cli once they want compiled IaC / Airflow DAGs, then add Bitol catalog export when they want data-mesh registry interop, then add ODPS v4 if they're publishing data products commercially.

🖱️ Every node in the diagram links to its source repository.

From the forge-docs: "Bitol Open Data Product Standard v1.0.0 as the default, center-stage ODPS" — export produces "1 ODPS doc + N sibling <contractId>.odcs.yaml files."


📊 Capability matrix

Legend: ✅ deterministic in spec · ⚠️ partial · ❌ silent. Headers abbreviated for width: F = FLUID v0.7.3 · ODCS = Bitol ODCS v3.1 · ODPS = Bitol ODPS v1.0 · v4 = ODPS v4.0. Field-level detail lives in the Schema Cheatsheet — this matrix is the at-a-glance scoreboard.

📐 Data shape & quality

CapabilityFODCSODPSv4
Schema✅✅❌ delegated❌ delegated
Data quality✅ 3-layer✅ rich❌✅ declarative
SLA / SLO✅ 4 SLOs✅ 11 dims❌✅ 11 dims
Privacy / sensitivity✅ 12-value + masking✅ per-column❌⚠️ metadata only

🔒 Access, governance & legal

CapabilityFODCSODPSv4
Access (IAM)✅ grants + conditions✅ roles❌⚠️ free-text
Lineage✅ top-level graph⚠️ column hints⚠️ product-level⚠️ pointer
AI / LLM governance✅ agentPolicy❌❌⚠️ MCP access only
Sovereignty / residency✅ jurisdiction + enforcement❌❌⚠️ partial
Legal framework✅ regulatory · 10 + 6❌❌✅ commercial · license / IPR

⚙️ Build & operations

CapabilityFODCSODPSv4
Build / transformation✅ 4 patterns❌❌⚠️ pointer only
Source-aligned ingestion✅ 6 engines❌❌❌
Orchestration✅ Airflow / Dagster / Prefect / Kubeflow❌❌⚠️ metadata only
Retention✅ retention❌❌❌
Delivery guarantees✅ acquisitionDelivery❌❌❌

🧭 Discovery & semantics

CapabilityFODCSODPSv4
Semantic model✅ semantics · OSI v1.0❌❌❌
Business metadata⚠️ basic⚠️ basic⚠️ basic✅ full i18n details.<lang>
Multi-access✅ exposes[] independent❌ single⚠️ free-form✅ 6-value enum

♻️ Lifecycle & supply chain

CapabilityFODCSODPSv4
Lifecycle states✅ 4-state⚠️ free-form✅ 5-state✅ 8-state
Versioning + schema evolution✅ schemaEvolution + 4-policy⚠️ version only⚠️ port + product⚠️ productVersion
SBOM⚠️ image signature❌✅ sbom[]❌

Each capability links to its field-level reference in the Schema Cheatsheet. MetricFlow round-trip is on the FLUID roadmap.

⚙️ The matrix above shows what each spec covers. forge-cli is the reference compiler that turns a FLUID contract into deployed reality and Bitol-compatible outputs.


When to use which

  • Use Bitol ODCS alone when you need a portable, vendor-neutral column-level contract any data-mesh tool can consume. The smallest unit of producer↔consumer agreement.
  • Use Bitol ODPS when you want a thin manifest to bundle multiple ODCS contracts into one product (ports + SBOM + lifecycle) without build automation or AI governance.
  • Use opendataproducts.org's ODPS v4 when you're commercializing data products — pricing tiers, payment integration, multi-language license, marketplace metadata. It expects an ODCS-shaped contract underneath.
  • Use FLUID as your authoring layer when you want one file to drive the full lifecycle — source-aligned acquisition, build, orchestration, agentic governance, sovereignty, multi-layer DQ, and semantics — and you want Bitol-compatible outputs for catalog/contract-registry interop. FLUID is the only spec covering the operational + agentic surface today.

Composing them

The cleanest production stack uses all four where each is strongest:

LayerSpecRole
AuthorFLUIDSingle .fluid.yml per product — version-controlled, schema-validated, agent-policy-enforced
Compileforge-cliEmits Bitol ODPS + ODCS files, generates Airflow DAGs, applies IAM grants, runs DLP pre-land hooks
CatalogBitol ODCS + ODPSWhat DataHub / OpenMetadata / Datamesh Manager read for discovery and contracts
CommercializeODPS v4Wraps the ODCS for external marketplace publishing — pricing, license, multi-language, payment

Sources

  • Bitol ODCS — open-data-contract-standard (v3.1.0)
  • Bitol ODPS — open-data-product-standard (v1.0.0)
  • opendataproducts.org ODPS v4 · v4.0 repo · v4.1 release
  • forge-cli — the FLUID reference compiler · forge-docs (emits Bitol ODPS + ODCS)
  • Linux Foundation AI & Data — Bitol project

→ See The Agentic-Native Layer for the four agent failure modes each spec is tested against.

Edit this page on GitHub
Last Updated: 5/29/26, 5:26 PM
Contributors: fas89, Claude Opus 4.8
Prev
The Agentic-Native Layer
Next
The Reference Compiler — forge-cli