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 native WorkflowAgent; DurableAgent (@workflow/ai/agent) runs inside "use workflow".
  • Durable streamsgetWritable() persists agent output; WorkflowChatTransport + useChat reconnect 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 + sleepsleep suspends 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 workflow npm snapshot (4.5.0 latest, 5.0.0-beta.26 beta). 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.0 latest and 5.0.0-beta.26 beta. 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