Medallion Architecture - Bronze, Silver, Gold¶
Overview
Plainsight uses the Medallion pattern as a shared language (Bronze -> Silver -> Gold) while keeping our semantic layer names for clarity (Landing/Staging -> ADS -> Gold business products). Medallion names keep us aligned with platform defaults; semantic names keep responsibilities explicit.
%%{init: { "flowchart": { "useMaxWidth": true, "curve": "basis" }, "theme": "base" } }%%
flowchart LR
Sources[(Sources)] --> Bronze[Bronze<br/>Raw / Landing & Staging<br/>per source]
Bronze --> Silver[Silver<br/>Cleansed / ADS]
Silver --> Gold[Gold<br/>Business-ready]
Gold --> Consumers[Consumers]
style Bronze fill:#CD7F32,stroke:#8B4513,color:#FFFFFF
style Silver fill:#C0C0C0,stroke:#808080,color:#000000
style Gold fill:#FFD700,stroke:#DAA520,color:#000000
How We Use Medallion at Plainsight¶
- Bronze = Landing + Staging (raw, auditable)
Land data as-is, keep history, and isolate by source. Light parsing only when required for ingestion. When the platform supports schemas, implement Bronze as separate schemas per source system:landing_<source>(optional) andstaging_<source>(required), for examplelanding_sap/staging_sap. - Silver = ADS (cleansed, conformed, historical)
Apply quality rules, integrate sources, denormalize for usability, and create SCD-ready snapshots. - Gold (Dims/Facts, OBT, Feature Store)
Publish business-ready products: dimensional stars (facts + dimensions), one-big-tables (when justified), semantic views, and curated feature sets.
The Dim/Fact, ADS, Staging, and Landing layers remain the canonical implementation. Use Medallion terms as friendly aliases so teams can align quickly with tooling and vendor language without losing precision.
Responsibilities by Layer¶
| Medallion | Plainsight layer(s) | What happens here | Typical outputs |
|---|---|---|---|
| Bronze | Landing + Staging | Preserve raw data with auditability; minimal transformation; per-source isolation (separate Landing/Staging per source) | Raw Delta/Parquet tables with audit columns in landing_<source> / staging_<source> schemas (or equivalent) |
| Silver | ADS | Data quality checks, conformance, source integration, progressive denormalization, optional SCD snapshots | ADS_* base tables, ADS_*_Snapshot history tables |
| Gold | Gold business products | Business modeling and products | Star schemas (Dims/Facts), OBTs, feature sets, semantic views |
Working With Both Naming Sets¶
- Use Bronze/Silver/Gold when coordinating with platforms, partners, or UI defaults.
- Use Landing/Staging, ADS, Gold business products when documenting responsibilities or writing code.
- Tag schemas, jobs, and storage paths with both when it helps discoverability (
layer=ads,medallion=silver). For Bronze, also tag the source (layer=staging,medallion=bronze,source=sap).
Avoid layer sprawl
Stick to Bronze, Silver, and Gold. If you need intermediate logic, model it as views or transient steps inside the nearest layer instead of inventing new metals.
Recommended Flow¶
%%{init: { "flowchart": { "useMaxWidth": true, "curve": "basis" }, "theme": "base" } }%%
flowchart TB
subgraph Bronze["Bronze"]
LandingSAP[landing_sap<br/>optional]:::bronzeOptional
StagingSAP[staging_sap]:::bronze
LandingSF[landing_salesforce<br/>optional]:::bronzeOptional
StagingSF[staging_salesforce]:::bronze
end
subgraph Silver["Silver"]
ADS[ads<br/>Cleansed + integrated]:::silver
end
subgraph Gold["Gold"]
Dims[Star: Dimensions & Facts]:::gold
OBT[One Big Table]:::gold
Feat[Feature Stores]:::gold
end
LandingSAP --> StagingSAP --> ADS --> Dims
LandingSF --> StagingSF --> ADS
ADS --> OBT
ADS --> Feat
classDef bronze fill:#CD7F32,stroke:#8B4513,stroke-width:1px,color:#FFFFFF;
classDef bronzeOptional fill:#CD7F32,stroke:#8B4513,stroke-width:2px,stroke-dasharray:5 5,color:#FFFFFF;
classDef silver fill:#C0C0C0,stroke:#808080,stroke-width:1px,color:#000000;
classDef gold fill:#FFD700,stroke:#DAA520,stroke-width:1px,color:#000000;
style Bronze fill:#CD7F32,stroke:#8B4513,color:#FFFFFF
style Silver fill:#C0C0C0,stroke:#808080,color:#000000
style Gold fill:#FFD700,stroke:#DAA520,color:#000000
Practices That Keep Medallion + Semantic Layers in Sync¶
- Keep quality gates explicit at each transition (Bronze -> Silver, Silver -> Gold).
- Preserve reloadability: Landing/Staging is the recovery point for rebuilding Silver/Gold.
- Centralize SCD2 tracking in ADS snapshots; keep Gold focused on business modeling.
- Publish Gold products that hide upstream complexity from consumers.
- Document both the Medallion alias and the semantic layer name for every dataset.
Related Pages¶
- Data Layers and Modeling: End-to-end architecture
- Landing and Staging: Bronze equivalent
- Analytical Data Store (ADS): Silver equivalent
- Star - Dimension Tables and Star - Fact Tables: Gold equivalents