Scheduler Model
Summary
The scheduler is a reconciler and task arming surface. It should not become the place where business logic runs.
Problem
Schedulers often drift into hidden workflow engines because they already wake up on a timer. That makes retry, audit, and manual repair harder.
Principle
Persist schedule state, enqueue work explicitly, and let jobs or DAGs own the actual executable behavior.
Platform Shape
The job execution modes doc describes manual-first scheduling, toggles for job, DAG, and marketing campaign schedules, and the move toward schedule-owned future Cloud Tasks. Scheduler code lives under app/scheduler and execution runtime support lives under services/execution/runtime and services/ops/job_schedules.
Source Evidence
docs/reference/job-execution-modes.mdapp/schedulerservices/execution/runtimeservices/ops/job_schedules
Related Reading
docs/engineering/architecture/database-vs-cloud-tasks-dispatch.mddocs/engineering/architecture/scheduled-jobs.md