// the find
quantum-elixir/quantum-core
:watch: Cron-like job scheduler for Elixir
Quantum is a cron-style job scheduler for Elixir, built as a set of supervised OTP processes rather than a single GenServer. It's aimed at teams running scheduled jobs inside an existing Elixir/Phoenix app, especially across multiple BEAM nodes, rather than people who just want a one-off cron replacement.
The internals split cleanly into ClockBroadcaster, JobBroadcaster, ExecutionBroadcaster and ExecutorSupervisor, so a crashing job execution doesn't take the scheduler down with it — each piece has its own supervision boundary. It ships run strategies (All/Local/Random) for multi-node deployments, which solves the 'don't fire this job on every node in the cluster' problem that most cron libraries in other languages don't touch at all. Jobs are configured as plain MFA tuples or anonymous functions in config.exs, so there's no scheduling DSL to learn on top of Elixir itself. CI is genuinely thorough — dialyzer, credo, Coveralls, and separate workflows per concern, plus dependabot/renovate both configured.
The default storage adapter is Noop (lib/quantum/storage/noop.ex), meaning out of the box there's no persistence of scheduler state across restarts — anyone who needs missed-job catch-up after a deploy has to implement their own storage backend first. There's no visible overlap protection: a job whose execution outlives its interval will just get invoked again on the next tick unless you build that guard yourself. The Random run strategy makes job placement non-deterministic across a cluster, which is a fun thing to debug when a job silently 'didn't run on that node' during an incident. Contribution process uses the formal C4 protocol with mandated issue/PR naming conventions ('Problem: ...' / 'Solution: ...'), which is more ceremony than most drive-by contributors expect and likely suppresses casual PRs.