Distributed Job Scheduler  ·  View 07 of 20  ·  Structure

Platform Components

The containers inside one region, and the only component that leaves the perimeter.

Editable source SVG draw.io All views
Google Cloud — scheduler region Control plane (Cloud Run) Management API Validator 3-instant probe Recurrence compiler tzdata pinned History API Timing plane (Cloud Run, leased partitions) Lease manager Due scanner 1 s tick Clock gate Instant claimer Shadow rebuilder divergence check Dispatch plane Rate shaper On-time lane Cloud Tasks Catch-up lane capped 10% Backfill lane Attempt runner signs, mints State and evidence Trigger registry Spanner Due index Spanner Fire ledger Spanner Fire history Bigtable Reporting BigQuery Platform services Time authority Workload identity Key management Monitoring Tenant HTTP target Tenant queue Platform executor validate scan commit signed POST Platform Components — Container View Interface / broker Application we own Decision point Queue / topic Data store Security / platform External / third party synchronous Only the attempt runner leaves the perimeter. Five edges shown; the registry writes, the history fan-out and the identity and monitoring dependencies of every tier are omitted deliberately. v 1.0 · owner Platform Architecture · date 2026-10

Decisions

  • Three dispatch lanes as separate queues rather than priorities in one, so the shedding order is enforced by which queue stops draining (ADR-09).
  • The shadow rebuilder is a first-class component, not a script: the due index's rebuildability is verified continuously rather than asserted (ADR-11).
  • Only the attempt runner has egress. Everything else is reachable only from inside the perimeter (ADR-14).

Assumptions

  • A 1-second due-scan tick, and 256 partitions. Both assumed; the partition count is the knob that trades scan cost against claim contention.

Deliberate omissions

  • Five edges are drawn. The registry writes, the history fan-out and the identity and monitoring dependencies of every tier are omitted so the fire path stays readable.