Lakehouse Design Guide

Medallion vs dimensional modeling: two answers to two different questions

By the engineer who builds Datadef, from client work on data platforms · Reviewed August 21, 2026

The question comes up on every lakehouse project: now that we have bronze, silver, and gold, do we still build star schemas. The two are usually presented as competing options, which is why the debate never resolves. They are on different axes. Medallion is a statement about how far a dataset has been refined and how much you can trust it. Dimensional modeling is a statement about the shape of a dataset once it is trusted. A gold layer with no model in it is a folder, not an architecture.

7 min readFor lakehouse teams deciding what goes in the gold layer

See it as a diagram

Everything below, as a diagram you can edit. Describe yours and see it in seconds.

171/20003 credits left
Try:

No account needed · Editable canvas, not a picture

Two axes, not two options

Medallion answers a lifecycle question. Bronze holds source data as it arrived, with the ingestion metadata attached and no business logic applied. Silver holds integrated, deduplicated, typed entities where the source-specific weirdness has been resolved. Gold holds what consumers are allowed to build on. The layers are about trust and reprocessing, which is why the rule of thumb is that you should be able to rebuild silver from bronze and gold from silver.

Dimensional modeling answers a consumption question. What does one row mean, which attributes can slice it, which measures are additive, and what happens when an attribute changes. Those questions do not go away because a table lives in a Delta or Iceberg format under a gold schema.

Once you see them as separate axes, most of the confusion resolves. Medallion tells you where a table sits in the refinement pipeline. Dimensional modeling tells you what its rows mean. A fact table in gold satisfies both statements at once.

What actually belongs in gold

The common and defensible pattern: gold contains a dimensional core, with conformed dimensions shared across processes and atomic fact tables at a stated grain, plus a small number of published projections built from that core for specific consumers. Wide marts, metric tables, and ML feature tables are projections, not the core.

Silver is where the modeling style varies most between teams. Some keep it as cleaned one-to-one entities per source, integrated only on keys. Others historize it into a normalized or vault-style model so that gold can be rebuilt at any point in time. The second option costs more up front and pays back on the day someone asks for a restated history. The choice depends on how often that question actually gets asked.

Bronze should hold no business logic at all. The moment a transformation lives in bronze, reprocessing from source stops being possible, and the layer has lost the only property it was created for.

The failure modes worth naming

Gold as a dumping ground. Every team gets a gold schema, writes whatever their dashboard needs, and within a year gold has four definitions of revenue and no conformed dimensions. The fix is not a new layer, it is an owner for the dimensional core and a rule that projections may not source from each other.

Silver as a second copy. If silver is just bronze with column names cleaned, it costs storage and compute for nothing. Silver earns its place when it integrates several sources onto shared keys and resolves conflicts.

Layer inflation. Bronze, silver, gold, then platinum, then a curated layer, then a semantic layer. Every added layer doubles the reprocessing surface and the number of places a definition can hide. If a layer cannot be described in one sentence stating what it is allowed to do, it does not need to exist.

Confusing the layer with the container. Whether the layers are three catalogs, three schemas, or three prefixes is a packaging decision that depends on the platform, and it is covered separately for Unity Catalog and for Snowflake.

Diagramming both axes on one canvas

A diagram that shows only the three layers communicates nothing a slide title could not. A diagram that shows only the star loses the pipeline. Datadef draws both at once: zones for bronze, silver, and gold, the real tables inside each zone with their storage and engine icons, and labelled edges stating what each hop does, such as deduplicate on natural key or conform to dim_customer.

The layer is a first-class property of a node rather than a group label, which matters more than it sounds. Its vocabulary is fixed at source, ingest, bronze, silver, gold, consume, and dbt, table nodes infer their layer from their names, and the value drives the node accent. A table sitting inside the gold zone while carrying a silver accent is a naming problem showing itself before anyone reads the label, which is the cheapest layer audit available.

For the gold zone specifically, fact and dimension nodes carry the grain sentence in their description, which is the single most useful thing to have on screen during a modeling review. When the models live in a dbt project, connect the repository and the diagram plus its architecture.md regenerate from the branch on a daily sync, so the picture matches the models rather than the intention.

Two statements about the same table, both true

  prod.gold.fct_subscription_events

  medallion says      gold: consumers may build on it;
                      rebuildable from silver alone
  dimensional says    transaction fact, grain = one row
                      per subscription per state change;
                      measures additive at that grain

  Neither statement implies the other. A gold table with
  no grain sentence has satisfied the first and skipped
  the second, which is what a folder full of marts is.

FAQ

Is medallion architecture a replacement for dimensional modeling?

No. Medallion describes how far data has been refined and how it can be reprocessed, while dimensional modeling describes what a row means and how it can be sliced. A gold layer still needs a model inside it, and for shared analytics that model is usually dimensional.

Should star schemas live in the silver or the gold layer?

Gold. Silver holds the integrated entities gold is built from, and the dimensional core is what consumers actually query. Putting the star in silver removes the layer where projections, wide marts, and feature tables can be built without polluting the core, and it leaves gold with nothing to be except a second copy of silver.

Can the silver layer use a data vault model?

Yes, and it is a reasonable choice when the business needs restatable history across many sources. Hubs, links, and satellites in silver give you a historized integration layer, and gold is then a dimensional model built from it. The cost is a second modeling discipline for the team to maintain.

Do we need bronze if the source system already keeps history?

Usually yes, because bronze protects you from the source changing or purging, and it lets you reprocess without re-extracting. The exception is when the extraction itself is cheap, fully repeatable, and the source guarantees retention longer than your reprocessing window.

How many medallion layers should a platform have?

Three, unless a fourth can be described in one sentence stating what it is allowed to do and what it is not. Each additional layer adds a reprocessing hop and another place where a business definition can hide, and most platinum layers turn out to be projections that belong in gold.