Sathus AI 2.0 is now generally available — evaluation harnesses and guardrails included. Explore
An enterprise engineering guide to architecting Bronze (raw append-only), Silver (cleaned & enriched), and Gold (business aggregates) data layers using Delta Lake and Apache Iceberg.
The Medallion Lakehouse Architecture is a three-tier data design pattern that logically structures data into Bronze (raw, append-only ingestion with schema-on-read preservation), Silver (cleaned, conformed, deduplicated, and enriched tables with schema enforcement), and Gold (business-level aggregated star schemas and dimensional cubes optimized for sub-second executive analytics). This layered decoupling prevents upstream schema drift from breaking downstream BI while ensuring 100% data auditability and zero data loss.
An enterprise engineering guide to architecting Bronze (raw append-only), Silver (cleaned & enriched), and Gold (business aggregates) data layers using Delta Lake and Apache Iceberg.
A: Bypassing Bronze and Silver leads to irrecoverable data loss when upstream schemas change or parsing fails. Bronze allows 100% data auditability and instant pipeline replay without reprocessing source databases.
A: Silver is best kept as normalized, third-normal-form (3NF) or conformed entity tables (e.g. CleanOrders, CleanCustomers). Dimensional star schemas belong in the Gold layer for reporting performance.
Bronze represents the raw landing zone. Rather than parsing, flattening, or dropping unexpected JSON fields at ingestion time, Bronze stores source events exactly as emitted by source databases, APIs, or message brokers. Key design rules: • Use Databricks Auto Loader or Kafka streaming sinks with append-only semantics. • Preserve original timestamps alongside ingestion timestamps (_rescued_data column). • Never mutate or update Bronze records; this provides an immutable cryptographic audit trail and allows replaying the entire data platform if business logic changes.
Silver is the operational core of the lakehouse. Data is read from Bronze, validated against strict data contracts, cleaned, deduplicated, and written as ACID-compliant Delta or Iceberg tables. Key transformations: • Type casting and schema enforcement (e.g. converting string timestamps to ISO-8601). • Entity resolution (deduplicating customer records using deterministic or probabilistic matching). • Data masking: Dynamic column masking or hashing for PII and PHI (HIPAA Safe Harbor). • Automated quality testing using Delta Live Tables (DLT) expectations, Great Expectations, or Soda Core.
Gold is modeled specifically for business consumers, financial reports, and executive dashboards. Unlike traditional data lakes that force analysts to run heavy joins across raw files, Gold pre-aggregates facts and dimensions. Optimization patterns: • Kimball Dimensional Modeling (Conformed Fact and Dimension tables). • Liquid Clustering or Z-Ordering on primary filter/join columns (e.g. date, customer_id, region). • Sub-second latency caching using Databricks SQL Serverless or Snowflake Virtual Warehouses.
Three-tiered decoupled storage and compute architecture utilizing open table formats on cloud object storage.
Raw streaming and batch ingestion via Auto Loader into append-only Delta tables with schema preservation.
Idempotent deduplication, type casting, schema evolution enforcement, and automated quality testing.
Optimized dimensional marts, aggregate tables with Z-order / liquid clustering for executive dashboards.
Pinpoint root cause failure modes and match observed metrics to actionable remediation.
| UI Tab / Tool | Observed Metric / Signal | Underlying Failure Mode | Actionable Remediation |
|---|---|---|---|
| Storage Metrics / CloudWatch | 100,000+ files < 10MB in Silver Delta table directory | Frequent streaming micro-batches without auto-compaction causing massive metadata lookup latency. | Enable delta.autoOptimize.autoCompact = true and schedule scheduled OPTIMIZE jobs with Liquid Clustering. |
| Auto Loader / DLT Event Log | Streaming job crashes with AnalysisException: Schema mismatch detected | Upstream event emitter added unannounced schema fields without a schema evolution rescue contract. | Set cloudFiles.schemaEvolutionMode = "rescue" and monitor the _rescued_data column. |
| Spark UI -> Stages Tab | Silver deduplication stage hangs at 99% with multi-gigabyte shuffle spills | dropDuplicates(["user_id"]) encountering severe skew on popular user identifiers or guest accounts. | Apply windowed deduplication over (PARTITION BY user_id ORDER BY event_time DESC) with two-phase key salting. |
| Databricks SQL / BI Dashboard | Gold queries scanning 100% of Parquet files despite date range predicates | Data skipping defeated because queries wrap filter columns in functions (e.g. TO_DATE(timestamp)). | Cluster Gold tables by raw timestamp column and query against pre-computed ISO date dimension keys. |
from pyspark.sql import functions as F
def transform_bronze_to_silver(bronze_df):
"""
Cleanses raw JSON events from Bronze and writes to Silver:
1. Extracts and casts typed fields
2. Drops exact and partial event duplicates
3. Enforces non-null primary keys
"""
return (
bronze_df
.filter(F.col("event_payload").isNotNull())
.select(
F.col("event_id").cast("string").alias("event_id"),
F.col("timestamp").cast("timestamp").alias("event_time"),
F.from_json("event_payload", schema).alias("payload")
)
.select("event_id", "event_time", "payload.*")
.dropDuplicates(["event_id"])
.filter(F.col("event_id").isNotNull())
)Raw S3 parquet files parsed directly by disparate departmental ad-hoc scripts. Schema changes upstream broke 40+ daily Tableau dashboards; uncompacted small files caused query latency to balloon past 45 seconds.
Unified Bronze/Silver/Gold pipeline on Delta Lake with automated compaction, schema evolution tracking, and dbt dimensional marts serving 200+ concurrent Power BI analysts with sub-second response times.
Reference architecture modeled on standard Kimball star-schema transformations over cloud object stores. Latency reductions and schema resilience represent modeled engineering design targets, rather than a single customer baseline.
| Feature | Bronze Layer | Silver Layer | Gold Layer |
|---|---|---|---|
| Data State | Raw & Unmodified | Cleaned & Conformed | Aggregated Business Marts |
| Write Pattern | Append-only (Batch/Stream) | Idempotent MERGE / Upsert | Periodic Overwrite or Merge |
| Schema Enforcement | Schema on Read / Evolutionary | Strict Schema on Write | Rigid Star Schema / Reporting |
| Primary Consumers | Data Engineers, Replay Jobs | Analytics Engineers, Data Scientists | BI Analysts, Executive Dashboards |
Bypassing Bronze and Silver leads to irrecoverable data loss when upstream schemas change or parsing fails. Bronze allows 100% data auditability and instant pipeline replay without reprocessing source databases.
Silver is best kept as normalized, third-normal-form (3NF) or conformed entity tables (e.g. CleanOrders, CleanCustomers). Dimensional star schemas belong in the Gold layer for reporting performance.
Data Platform Practice Director
Part of the Sathus Lakehouse Engineering at Sathus Technology. Specializing in mission-critical data lakehouses, streaming analytics, and compliance-driven platforms.
Book an architectural assessment with Sathus Principal Data Architects to benchmark your pipeline performance and slash infrastructure costs.