The lakehouse pattern collapses the historical wall between warehouses and lakes. Instead of copying data from one to the other, we layer transformations on the same open table format.
Why medallion
Bronze captures raw truth. Silver is conformed, deduplicated, joined. Gold is business-shaped — the tables analysts and ML models actually consume.
- Bronze: append-only, schema-on-read
- Silver: cleaned, typed, deduped
- Gold: dimensional, aggregated, contract-first
Table format matters
Delta Lake and Iceberg give us ACID, time travel, and schema evolution on object storage. Pick one and commit — running both doubles your ops surface.
df = (spark.readStream.format('delta').load('/bronze/orders')
.withWatermark('event_ts', '10 minutes')
.dropDuplicates(['order_id']))Governance early, not later
Unity Catalog or Lake Formation from day one. Retrofitting lineage across 400 tables is a career-ending project.
The lakehouse isn't about one engine — it's about one contract.