States are enforced by Kathikon.Job.StateMachine. Invalid transitions return {:error, {:invalid_transition, from, to}}.

States

StateMeaning
:scheduledWaiting until scheduled_at
:availableReady to claim
:claimedAtomically claimed
:runningWorker executing
:retryableFailed, waiting for backoff
:waiting_for_childrenBatch parent waiting on children
:completedSuccess
:failedTerminal failure (retries exhausted)
:deadDead-letter queue
:cancelledCancelled before completion
:discardedPermanently discarded

Worker return values

ReturnEffect
:ok / {:ok, result}Complete; result stored per result: option
{:error, reason}Retry with backoff; dead-letter after max attempts
{:discard, reason}Move to :discarded
{:retry, reason}Same as error (explicit retry)
{:sleep, seconds}Reschedule without incrementing attempts

History

Every transition writes a durable event retrievable via Kathikon.history/1.