Skip to content

Scheduler

The path from an evaluated derivation to a finished, cached build. Every derivation is built once globally, as one shared build. The pages are following a shared build from creation to assignment.

flowchart LR
    shared[Shared Builds] --> promo[Queueing and Counters]
    promo --> subst[Upstream Substitution]
    promo --> score[Scoring]
    subst --> closure[Cache Closure]
    promo --> recon[Repair Pass]
    recon --> wait[Waiting and Recovery]
  • Shared Builds

    One derivation_build row per derivation, and the graph writer owning every write.

  • Queueing and Counters

    A shared build moving from Created to Queued, and the counters behind every start condition.

  • Upstream Substitution

    Probing upstream caches and fetching outputs instead of building them.

  • Cache Closure

    The complete-closure invariant, its runtime counter and the self-heal after a failed build.

  • Repair Pass

    Heals for state beyond the reach of any event, and the emitter sending out every shared build move.

  • Waiting and Recovery

    Split flake jobs, parked evaluations, re-offered jobs and startup recovery.

  • Scoring

    Policy ranking of pending jobs for the requesting worker.

  • Cluster Jobs

    Jobs claimed together on distinct workers, all or nothing.