Vercel Workflows
Durable-execution programming model where your application code is the orchestrator — mark a function
"use workflow"and isolate units of work with"use step", and Vercel handles queues, retries, persistence, observability, and resumable streams with no separate orchestration service.
Vercel Workflows reached GA on 2026-04-16 after a beta that processed 100M+ runs and 500M+ steps across 1,500+ customers (200K+ npm downloads/week since Oct 2025). It targets agents, backends, and any work that doesn't fit in one request. Source: Vercel blog "A new programming model for durable execution", https://vercel.com/blog/a-new-programming-model-for-durable-execution, 2026-04-16 Source: X/@vercel, 2026-04-16
The programming model
export async function createSite(input: { userId: string }) {
"use workflow"
const profile = await fetchUserProfile(input.userId)
const plan = await generateSitePlan(profile)
return await buildSite(plan)
}
async function fetchUserProfile(userId: string) {
"use step" // automatic retries, persistence, observability, durable continuation
return db.user.findUnique({ where: { id: userId } })
}
It "looks like one function calling another, and that is exactly the point" — each "use step" gets isolation, retries, and durable continuation automatically. Orchestration lives in app code, not a separate system. Source: Vercel blog, 2026-04-16
How it works (no orchestrator)
| Component | Role |
|---|---|
| Event log | Records every step input/output, stream chunk, sleep, hook, and error — single source of truth for execution state. |
| Fluid compute | Each step runs as its own function invocation; the workflow library handles dequeue, state load, encryption, execution, handoff. |
| Vercel Queues | Each function enqueues the next step automatically (runs on Vercel, your Postgres, or in-memory locally). |
Because there is no separate orchestration service, you pay only for the compute steps actually use. Source: Vercel blog, 2026-04-16
Built for agents
- Durable agents — deep Vercel AI SDK integration; tools can be
"use step"for retries; agents survive restarts. AI SDK v7 ships a nativeWorkflowAgent;DurableAgent(@workflow/ai/agent) runs inside"use workflow". - Durable streams —
getWritable()persists agent output;WorkflowChatTransport+useChatreconnect and resume from the last received event after a closed browser, no Redis/pub-sub. The run ID (x-workflow-run-id) enables reconnection. - Hooks + sleep —
sleepsuspends for minutes-to-months with zero compute (drip campaigns); hooks wait for external triggers (human-in-the-loop approvals). - Limits — 50 MB per step payload, 2 GB per run — headroom for multimodal agents passing images/video. Source: Vercel blog, 2026-04-16
The Rauch artifact is useful because it shows the operational surface, not just the programming model. The local image is a Vercel Workflows run trace for generateBirthdayCard: created/completed timestamps, 1m48s duration, 28-day expiry, 8 MB storage, trace/events/streams tabs, a waterfall span, a hook wait, and a sleep segment. That turns durability into something an operator can inspect during agent failure, rate-limit, retry, and waiting states. Source: X/@rauchg, 2026-04-16; Source: local image artifact, reviewed 2026-07-03
Security and DX
- Encrypted by default — step inputs/outputs/stream chunks are encrypted before leaving the deployment; decryption only inside the running deployment, with an audit trail on explicit dashboard/CLI decryption.
- Agent-friendly — ordinary TypeScript (or Python SDK, beta); a coding agent reasons about one system. CLI observability lets an agent inspect runs from the terminal.
- Example — Guillermo Rauch's infinite AI chess game models infinity as recursion across runs (each match a run that starts the next). Source: Vercel blog, 2026-04-16
Stack fit
Durable backbone for long-running agents in the Vercel stack — complements Vercel AI SDK / AI SDK HarnessAgent (the agent brain) and the Persistent Sandbox Thesis (durable execution surfaces). SDK lives at useworkflow.dev / workflow-sdk.dev (the Workflow DevKit, "WDK").
Current source snapshot as of 2026-07-04: Vercel's Workflows docs install workflow, describe Workflows as resumable, durable, and observable, and list docs last updated 2026-06-17. The npm package snapshot is unchanged at workflow@4.5.0 latest with 5.0.0-beta.26 on the beta tag. Source: Vercel Workflows docs, 2026-07-04; Source: npm registry, 2026-07-04
Timeline
- 2026-07-03 | Deep-reviewed Guillermo Rauch's Workflows durability bookmark and local image artifact. Added the dashboard trace as evidence that the product's value is observable resumability: operators can inspect duration, expiry, storage, waterfall spans, hooks, sleeps, and logs for long-running agent/backend work. Verified current docs and
workflownpm snapshot (4.5.0latest,5.0.0-beta.26beta). Source: X/@rauchg, 2026-04-16; Source: Vercel docs/npm registry, 2026-07-03 - 2026-07-04 | Source-reviewed the @vercel GA announcement row against current Vercel docs and npm. No new skill was needed; the existing Vercel Workflows route remains current at
workflow@4.5.0latest and5.0.0-beta.26beta. Source: X/@vercel, 2026-04-16; Source: Vercel docs/npm registry, 2026-07-04 - 2026-04-16 | Vercel Workflows GA — "Your code is the orchestrator. Ship agents, backends, or any long-running process without managing queues, retries, or workers." @vercel, 447 likes / 193 bookmarks; 9-min launch blog. Source: X/@vercel, 2026-04-16
- 2026-06-12 | Wiki page created from React/Next bookmark absorption; resolved the durable-execution launch blog (
"use workflow"/"use step", event log + Fluid compute + Queues, DurableAgent, durable streams). Source: Vercel blog, 2026-06-12