Distributed Job Scheduler  ·  View 06 of 20  ·  Structure

Layered Architecture

Seven layers, and the single seam between the control plane and the timing plane.

Editable source SVG draw.io All views
Tenant surface Schedules console Management API Cloud Run Dry-run / next fires History API Control plane Definition validator Recurrence compiler zone + DST rules Policy and quota admission Audit writer State of record Trigger registry Spanner Due index partitioned Fire ledger append-only Timing plane Lease manager Due scanner Clock gate ε ≤ 10 ms Instant claimer Dispatch plane Rate shaper Lane queues Cloud Tasks Signer Attempt runner Evidence Fire history Bigtable History archive Cloud Storage Lateness metrics Reporting BigQuery Platform services Time authority Workload identity Key management Perimeter controls define version write range scan bounded ε commit by lane Distributed Job Scheduler — Layered Architecture Application we own Interface / broker Security / platform Data store Decision point Queue / topic synchronous two-way The control plane and the timing plane share only the state of record. A control-plane outage stops new definitions, not scheduled fires. v 1.0 · owner Platform Architecture · date 2026-10

Decisions

  • The control plane and the timing plane share only the state of record. A control-plane outage stops new definitions, not scheduled fires (ADR-02).
  • The clock gate is drawn as a decision node inside the timing plane, because refusing to fire on an untrustworthy clock is a control-flow branch, not a configuration value (ADR-04).
  • Evidence is its own layer. A lateness question is served from a projection and never from the ledger.

Assumptions

  • Control plane 99.9% monthly, dispatch plane 99.95% measured as punctuality — both assumed, and the asymmetry is the point.
  • Definition changes propagate within 5 s p99, which is what rules out any due structure rebuilt on a slow cycle (Question 1 in the ask).

Deliberate omissions

  • The attempt runner's write back to fire history is drawn in views 02 and 07 rather than repeated here.