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
| Layer | Freshness target | Access | Quality contract |
|---|---|---|---|
| Bronze | Near-real-time landing | 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.) | Complete and replayable; little validation |
| Silver | Minutes to hours | 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 | Deduplicated, schema-valid, conformed |
| Gold | Tied to the dashboard/feature SLA | Wide self-serve, role-scoped | Business-correct, tested, documented |
Mapping SLAs and access to layers is how you give self-serve without exposing raw PII.
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.
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.