Skip to lesson
Exit
Lakehouse & Ingestion at Scale1 / 2

1 min lesson

Each layer gets its own contract

Take this situation: "A stakeholder wants dashboards fed straight from bronze because silver is 'too slow.' How do you respond?" Lead with your decision, then add the reason.

Step 1 of 2

Each layer gets its own contractSLAs, freshness and access differ by layer

Layer
Bronze
Freshness target
Near-real-time landing
Access
Engineers only (raw, may contain PIIPersonally Identifiable Information. Data that can identify a person (names, emails, SSNs); regulated and sensitive. Press Enter for the full definition.)
Quality contract
Complete and replayable; little validation
Layer
Silver
Freshness target
Minutes to hours
Access
Broad internal, PIIPersonally Identifiable Information. Data that can identify a person (names, emails, SSNs); regulated and sensitive. Press Enter for the full definition. masked via UC
Quality contract
Deduplicated, schema-valid, conformed
Layer
Gold
Freshness target
Tied to the dashboard/feature SLA
Access
Wide self-serve, role-scoped
Quality contract
Business-correct, tested, documented

Mapping SLAs and access to layers is how you give self-serve without exposing raw PII.

Gold is derived, never sacred

Every gold table must be rebuildable from silver and silver from bronze. That property is what makes a backfill or a bug fix safe: you reprocess from the layer below instead of patching serving tables in place. If a gold table can't be regenerated, it has become a second source of truth and a liability.

Watch out

Don't let consumers query bronze directly to "get fresher data." Bronze has duplicates, unvalidated schemas and raw PIIPersonally Identifiable Information. Data that can identify a person (names, emails, SSNs); regulated and sensitive. Press Enter for the full definition.; every team that reads it reinvents cleaning logic inconsistently. Freshness pressure is real, so the answer is a faster silver path, not opening the raw layer to everyone.