Reference architecture

How an open lakehouse is assembled

Each layer has one responsibility and several implementations. The architecture earns its keep when you can replace any single layer without touching the others, so the useful way to read this is as a set of independent decisions rather than a product.

  1. Agents & AI 18 entries How do agents use any of this safely? Agentic analyticsRAGText-to-SQLVector search
  2. Semantics 12 entries What does this data mean? Semantic layerMetricsOntologyModeling
  3. Movement 15 entries How does data get in, and stay current? AirflowdbtDagsterCDCStreaming
  4. Interchange 3 entries How does data move between systems? Apache ArrowArrow FlightFlight SQL
  5. Compute 43 entries What actually runs the query? SparkTrinoFlinkDuckDBDremio
  6. Catalog 17 entries How do engines find and govern those tables? Apache PolarisIceberg RESTNessieGlueUnity
  7. Table format 50 entries What makes those files behave like a table? Apache IcebergDelta LakeApache HudiApache Paimon
  8. Storage format 26 entries How is the data physically written down? Apache ParquetORCAvroObject storage
  9. Foundations 17 entries What kind of system are we building? LakehouseData lakeData warehouseMedallion

Drawn top to bottom as the stack is built: storage at the base, agents at the top. Each row links to the reference entries for that layer.

Layer by layer

Every layer below answers one question, and the choice you make there constrains the layers above it more than the ones below.

Foundations

What kind of system are we building?

The architectural ideas the rest of the stack assumes: what a lakehouse is, and how it differs from a lake or a warehouse.

17 reference entries on foundations
Storage format

How is the data physically written down?

How bytes are laid out on object storage, and how they are encoded and compressed for analytical reads.

OptionWhat distinguishes it
Apache ParquetColumnar, the default for analytical reads
ORCColumnar, common in Hive-era estates
AvroRow-oriented, used for metadata and streaming payloads
Object storageS3, GCS, Azure Blob, MinIO, or on-premise equivalents
26 reference entries on storage format
Table format

What makes those files behave like a table?

The metadata that turns a directory of files into a table with transactions, schema evolution, and time travel.

OptionWhat distinguishes it
Apache IcebergWidest multi-engine support
Delta LakeStrong within the Databricks ecosystem
Apache HudiBuilt around upserts and incremental pulls
Apache PaimonStreaming-first, close ties to Flink
50 reference entries on table format
Catalog

How do engines find and govern those tables?

The service that tracks which tables exist, where their metadata lives, and who is allowed to touch them.

OptionWhat distinguishes it
Apache PolarisOpen catalog with RBAC and credential vending
Iceberg RESTThe API specification the others implement
Project NessieGit-style branching and tagging
AWS GlueManaged, deeply integrated with AWS
Unity CatalogGovernance across the Databricks estate
17 reference entries on catalog
Compute

What actually runs the query?

The engines that plan and execute queries, and the optimisations that make them fast over object storage.

OptionWhat distinguishes it
Apache SparkBatch and large-scale transformation
TrinoInteractive federated SQL
Apache FlinkStream processing
DuckDBSingle-node analytics, increasingly on lakehouse tables
DremioLakehouse query engine with a semantic layer
43 reference entries on compute
Interchange

How does data move between systems?

The in-memory format and wire protocols that move results between systems without paying serialisation costs.

OptionWhat distinguishes it
Apache ArrowThe in-memory columnar standard
Arrow FlightHigh-throughput transport for Arrow data
Flight SQLA SQL protocol over Flight
3 reference entries on interchange
Movement

How does data get in, and stay current?

How data arrives and keeps arriving: ingestion, transformation, orchestration, and streaming.

15 reference entries on movement
Semantics

What does this data mean?

The layer that maps physical tables to business meaning, so queries are written against concepts rather than schemas.

OptionWhat distinguishes it
Semantic layerMaps physical tables to business concepts
Metrics definitionsOne governed definition per measure
Ontologies and graphsRelationships agents can traverse
12 reference entries on semantics
Agents & AI

How do agents use any of this safely?

How language models and agents consume governed lakehouse data, and what they need from the layers beneath.

18 reference entries on agents & ai

Where the model blurs

Clean layer diagrams are useful and slightly dishonest. These are the seams where real systems cross boundaries, and they are usually where migrations get expensive.

Catalogs that also store table metadata

The table format owns metadata and the catalog owns the pointer to it. Several catalogs blur this by caching or managing metadata directly, which improves performance and complicates migration.

Engines that ship their own catalog

Most engines can act as a catalog for their own tables. It is convenient for a single-engine deployment and becomes the thing you have to undo when a second engine arrives.

Table formats reaching into storage layout

Sort order, partitioning, and file sizing are declared at the table layer but decide how bytes land at the storage layer. Most real performance work happens across that seam.

Semantics implemented inside the engine

A semantic layer bound to one engine is the fastest to adopt and the hardest to keep when engines change. Whether semantics belong to the platform or to one query engine is the live architectural argument.