Files
Peter Wielander f39f9be2da Don't run steps inline when a run's wake-ups are serialized
With sequential replays on, a run's continuations share one
`maxConcurrency: 1` topic. An inline step body holds the invocation's
queue message — and therefore the run's only slot — until it finishes,
so a wait continuation, hook resume or `wakeUpRun` for that run cannot
be delivered: a timer can never preempt a step, and
`Promise.race(step, sleep())` always observes the step winning.

Worlds now declare `capabilities.serializedRunContinuations`; when a
run continuation suspends with a wait or hook armed (or one still open
in the log), the runtime passes `allowInlineSteps: false` so every step
gets its eager `step_created` and is queued instead. Pure step chains,
turbo's hot path, and per-step-topic deliveries keep inline execution.

Also point @workflow/nitro at `getWorkflowQueueTrigger()` so its flow
trigger carries the matching `maxConcurrency`.

Signed-off-by: Peter Wielander <peter.wielander@vercel.com>
2026-07-30 15:54:24 -07:00
..
2025-10-23 12:07:52 +03:00
2025-10-23 12:07:52 +03:00
2025-10-23 12:07:52 +03:00
2025-10-23 12:07:52 +03:00
2025-10-23 12:07:52 +03:00

Workflow SDK Docs

Check out the docs here