Variable: DEFAULT_SPILL_THRESHOLD_BYTES
constDEFAULT_SPILL_THRESHOLD_BYTES:65536=65_536
Defined in: packages/workflow-engine/src/kernel/spill.ts:79
Default soft threshold, in bytes of serialised JSON, above which a payload is written to the blob store instead of inline.
64 KiB. The number is chosen from the smallest ceiling downstream of a payload rather than from the database: a job payload is what a real queue transport puts in a message, and the tightest common limit is Cloudflare Queues at 128 KiB (Amazon SQS is 256 KiB). 64 KiB is the largest round value that leaves a whole message envelope of headroom under that.
It is also two orders of magnitude above Postgres's ~2 KiB TOAST threshold, so an ordinary payload — a config object, a small extraction, a handful of ids — never spills and never pays the extra round trip. Everything that does spill was going to be read back in full on every replay, which is the cost the claim check removes.
Raise it when your blob store is slow relative to your database; set the
threshold to Number.POSITIVE_INFINITY to stop spilling new values
entirely (already-spilled values still resolve on read).