Distributed Job Scheduler · View 11 of 20 · Data
Decisions
- The fire's primary key is (tenant, trigger, scheduled instant, sequence) — which is the idempotency key. A duplicate decision is a constraint violation, not something to detect (ADR-03).
- Definitions are versioned and immutable once fired against, and every fire names its version, so a disputed instant is explainable after an amendment (ADR-05).
- The tzdata version is a column on the fire, because a time-zone database update is a silent change to a future instant otherwise (ADR-07).
Assumptions
- Non-dispatch is a field on the fire rather than a separate record, which assumes a fire has at most one terminal non-dispatch cause.
- work_outcome is 1:0..1 against the fire: the absent row is the unknown state, which overlap control in view 14 must handle rather than wait on.
Deliberate omissions
- Quota counters, next-fire caches and the billing rollup are projections and appear in view 10, not here.