Video summary
Medallion Architecture Explained (Bronze, Silver, Gold)
Main summary
Key takeaways
Medallion architecture (Bronze / Silver / Gold): what it is
Medallion architecture is a naming + workflow convention for structuring a data platform into three tiers. It is not a separate installable technology (i.e., there’s no “Medallion” button in tools like Databricks/Snowflake/BigQuery).
Its goal is debuggability and repeatability: split a pipeline into stages where each stage produces durable, reviewable outputs.
Tier definitions and intended contents
Bronze (raw / recovery layer)
Purpose: Hold a reliable copy of source data in original form as it arrives.
- No business logic:
- no filtering
- no renaming
- no type casting
- no corrections
- If a source column contains issues (e.g., trailing spaces or damaged strings), Bronze keeps them as-is.
- Adds only upload/ingestion metadata, such as:
- timestamp of receipt
- source system name
- file/partition name
- ideally a package ID
- Append-only / recovery point:
- Enables rebuilding downstream data when later stages have bugs.
- Avoids dependence on overwritten production tables or limited vendor retention windows.
Practical tips:
- Partition Bronze by “date received” (not business/request dates) to support accurate reprocessing.
- Store semi-structured data as JSON/variant rather than splitting into columns immediately.
- Apply a storage policy/retention strategy for continuously growing Bronze.
Does Bronze mean every version forever?
- Not strictly “forever,” but typically keep every event/image received (e.g., CDC change events or nightly full-frame snapshots).
Silver (clean / entity layer)
Purpose: Convert raw into valid, consistent data.
- Cleaned, typed, deduplicated
- Conforms to a shared model
What happens here:
- Primary cleanup work, including:
- convert strings → dates/decimals
- remove spaces
- standardize codes (e.g.,
USvsUSAvsUnited States) - filter invalid records
- remove duplicates to avoid double counting (common with at-least-once ingestion)
- Unify entities from multiple sources:
- same business key
- same format/value
- regardless of which source pipeline provided it
What Silver should avoid:
- Don’t mix business definitions into Silver.
- Casting types is cleanup (OK for Silver).
- Defining “active customer” based on last 90 days is a business rule (belongs in Gold).
Also recommended for:
- Structures for slowly changing dimensions (SCD) history (e.g., “active from/to” tariff plan history).
Gold (business-ready / consumer layer)
Purpose: Provide ready-to-use tables aligned to business questions and metrics.
- Solidify metric definitions and aggregations, with examples like:
- MRR
- active user
- attributed conversion
- Built “from the question to be answered” (not directly from source events).
- Can be shaped for consumers:
- star schema for BI tools
- denormalized tables / feature exports optimized for dashboard speed or downstream exports
Access guidance:
- Most of the organization should access Gold directly (analysts/executives).
- Silver is for data teams/analytics engineers.
- Bronze is for engineers and data re-creation.
Rebuild characteristics:
- Gold is typically cheaper/faster to rebuild because it depends on already-cleaned Silver.
Four rules to keep the architecture robust
-
Data only moves downstream
- Bronze → Silver → Gold.
- Gold should not read from Bronze.
- If cross-tier access is needed, implement the missing logic in Silver.
-
Each level can be replayed from the previous one
- If Bronze exists, you can regenerate everything downstream.
-
Transformations must be idempotent
- Re-running the same task with the same input should not change results.
- Use strategies like merge by key / overwrite partitions instead of blind appends.
-
Quality checks at level boundaries
- Validate entering Silver (source correctness).
- Validate entering Gold (business/logical correctness).
- Pre-decide whether failures stop the pipeline or isolate bad rows—especially during incidents.
Common mistakes highlighted
-
Treating level names like folders instead of contracts
- Example: Silver being just “select all from bronze” adds no value.
-
Putting business logic in Silver
- Business definitions then propagate into every Gold table, making future changes costly.
-
Forcing exactly three levels even when unnecessary
- Layer count isn’t sacred; you can use intermediate/differently structured zones if each has a clear purpose.
-
No storage/compaction policy
- Bronze small files/old partitions can slow queries and increase costs; retention/compression/periodic review is needed.
-
No owner per level
- Without responsibility, tables drift and duplicate/fragment over time across pipelines.
When to skip medallion architecture
Skip it if the use case doesn’t justify the added storage and complexity, for example:
- Small team with one dashboard and multiple sources → two-tier (“raw + storefront”) may suffice.
- Real-time sub-second latency workloads → 3-layer medallion may add unacceptable latency; streaming designs may differ.
- The source system is already clean/up-to-date → copying it as “raw” may be wasted effort.
The pattern is most valuable when you need:
- root-cause debugging for incorrect numbers
- the ability to reprocess without going back to the source
Main speaker/source(s)
- “Data Guy” (closing speaker reference)
Rate this summary
Your feedback will help improve summaries.
Improve this summary
Reprocess with a stronger model when the summary feels incomplete or inaccurate.
Translate summary in another language
Ask questions to this video
Chat for follow-up questions, clarifications, and source-backed answers.