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
2026-02-05 16:19:16 -08:00
2025-10-23 12:07:52 +03:00
2025-10-23 12:07:52 +03:00

Workflow SDK logo

Workflow SDK

Vercel logo NPM version License Join the community on GitHub

Getting Started

The Workflow SDK lets you easily add durability, reliability, and observability to async JavaScript. Build apps and AI agents that can suspend, resume, and maintain state with ease.

Visit https://workflow-sdk.dev to view the full documentation.

Community

The Workflow SDK community can be found on GitHub Discussions, where you can ask questions, voice ideas, and share your projects with other people.

Contributing

Contributions to Workflow SDK are welcome and highly appreciated. Please use GitHub issues and discussions to collaborate with the team and wider community.


Security

If you believe you have found a security vulnerability in Workflow SDK, we encourage you to responsibly disclose this and not open a public issue.

To participate in our Open Source Software Bug Bounty program, please email responsible.disclosure@vercel.com. We will add you to the program and provide further instructions for submitting your report.

S
Description
workflow: Creates durable, resumable workflows using Vercel's Workflow SDK. Use when building workflows that need to survive restarts, pause for external events, retry…; workflow-init: Install and configure Vercel Workflow SDK before it exists in node_modules. Use when the user asks to "install workflow", "set up workflow", "add durable…
Readme 140 MiB
Languages
TypeScript 88.8%
JavaScript 5.9%
Rust 4%
CSS 0.5%
Python 0.4%
Other 0.3%