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.