Skip to main content

Interface: KernelConfig

Defined in: packages/workflow-engine/src/kernel/kernel.ts:142

Properties​

blobStore​

blobStore: BlobStore

Defined in: packages/workflow-engine/src/kernel/kernel.ts:144


clock​

clock: Clock

Defined in: packages/workflow-engine/src/kernel/kernel.ts:147


eventSink​

eventSink: EventSink

Defined in: packages/workflow-engine/src/kernel/kernel.ts:146


executor?​

optional executor?: ActivityExecutor

Defined in: packages/workflow-engine/src/kernel/kernel.ts:149


idempotencyStaleInProgressMs?​

optional idempotencyStaleInProgressMs?: number

Defined in: packages/workflow-engine/src/kernel/kernel.ts:163

How long an idempotency key may sit in_progress before a subsequent dispatch is allowed to reclaim it. Guards against a dispatcher that crashed between committing its transaction and calling completeIdempotencyKey, which would otherwise leave the key permanently stuck and every future dispatch with that key throwing IdempotencyInProgressError. Defaults to 10 minutes. Set to Infinity to disable reclaiming.


jobTransport​

jobTransport: JobTransport

Defined in: packages/workflow-engine/src/kernel/kernel.ts:145


persistence​

persistence: Persistence

Defined in: packages/workflow-engine/src/kernel/kernel.ts:143


registry​

registry: WorkflowRegistry

Defined in: packages/workflow-engine/src/kernel/kernel.ts:148


services?​

optional services?: KernelServices

Defined in: packages/workflow-engine/src/kernel/kernel.ts:153

Optional services exposed lazily through stage contexts.


spillThresholdBytes?​

optional spillThresholdBytes?: number

Defined in: packages/workflow-engine/src/kernel/kernel.ts:179

Soft threshold, in bytes of serialised JSON, above which a durable step result is written to blobStore and the ledger row keeps only a reference. Defaults to DEFAULT_SPILL_THRESHOLD_BYTES (64 KiB).

There is no hard ceiling above it — a payload larger than the threshold is spilled, never rejected. Reads resolve the reference before the value reaches the stage, so ctx.step.run(...) returns what it stored either way. Set to Number.POSITIVE_INFINITY to keep every result inline; already-spilled results still resolve on read.

Job payloads use the same mechanism but are opt-in at wiring time, because the transport is shared with the host: see createSpillingJobTransport.


stepLedger?​

optional stepLedger?: StepLedger

Defined in: packages/workflow-engine/src/kernel/kernel.ts:151

Optional durable step storage. Stages without ctx.step need none.