SLO and Error Budget Service · View 12 of 21 · Data
Decisions
- (slo_id, minute_utc) is the bucket's primary key, so a replayed or duplicated batch is a primary-key collision rather than a double-count. Idempotency lives in the data model, not in the consumer's logic (ADR-08).
- A sealed budget_snapshot has no update path. A later exclusion produces a new annotation and a new current figure; it cannot alter the figure the compliance record already carries (ADR-14).
- slo_version carries the predicates and the objective, not slo. Every budget figure is therefore attributable to the exact text that produced it (ADR-05).
Assumptions
- label_dims is bounded at authoring time — the cardinality limit is a column constraint, not a review convention (ADR-15).
- A verdict carries valid_until because it is a signed document a machine will act on; five minutes is the assumed validity (ADR-12).
- composite_rule on critical_journey is nullable and unused at MVP; journey-level composition is Phase 3.
Deliberately omitted
- The override register and audit ledger, which are drawn with their approval flow in views 19 and 20.
- budget_window's version_id FK is listed on the entity but not drawn as a relation, to keep the vertical runs legible.