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.