Skip to content

Job

Job<TJobId, TJobTypeName, TChainTypeName, TInput, TOutput, TCanContinue> = JobFields<TJobId, TJobTypeName, TChainTypeName, TInput> & { status: "blocked"; } | { status: "pending"; } | { attemptAt: Date; attemptBy: string; attemptUntil: Date | null; status: "running"; } | object & [TOutput] extends [never] ? never : TerminalJobFields<TOutput> | TCanContinue extends true ? ContinuedJobFields<TJobId> : never

Defined in: packages/core/src/entities/job.types.ts:70

A job within a chain. Discriminated union on Job.status | status, with completed further split into a terminal variant (carries output, continuedToId === null) and a continued variant (no output, continuedToId points at the successor job).

TJobId

The job ID type (e.g. string or UUID)

TJobTypeName

The job type name literal

TChainTypeName

The chain type name literal

TInput

The job’s input payload type

TOutput

The job’s output type (available when terminally completed)

TCanContinue extends boolean