The durable job record.
States:
"ready"— claimable onceready_atis due (covers scheduled, retry backoff, and snoozes; there is no separate staging step)"awaiting"— parked on a named signal;ready_atdoubles as the wake deadline (nil waits forever)"running"— claimed under a lease"held"— created but ineligible (unmet workflow deps, operator hold)"succeeded"/"failed"/"cancelled"— terminal"paused"— reserved for operator freezes of parked jobs
Summary
Functions
Decode a succeeded job's result (ETF or JSON — see Belay.Codec).
Types
@type t() :: %Belay.Job{ attempt: term(), await_name: term(), await_scope: term(), budget_tokens: term(), budget_usd_micros: term(), cancel_requested: term(), cron_name: term(), cron_slot: term(), duplicate?: term(), errors: term(), finished_at: term(), id: term(), input: term(), inserted_at: term(), kind: term(), lease_until: term(), leased_by: term(), max_attempts: term(), meta: term(), parent_id: term(), partition_key: term(), priority: term(), queue: term(), ready_at: term(), result: term(), spent_tokens: term(), spent_usd_micros: term(), started_at: term(), state: term(), unique_key: term(), unique_mode: term(), wf_deps: term(), wf_ignore: term(), wf_name: term(), workflow_id: term() }