Vercel

@workflow/world-vercel

Fully-managed world for Vercel deployments. Zero config, infinitely scalable, built-in authentication.

The Vercel World is a fully-managed workflow backend for applications deployed on Vercel. It provides scalable storage, distributed queuing, and automatic authentication with zero configuration.

When you deploy to Vercel, workflows automatically use the Vercel World - no setup required.

Usage

Deploy your application to Vercel:

vercel deploy
Enable Fluid compute before deploying. Workflow is designed to take advantage of Fluid compute for efficient suspension and resumption. Without Fluid compute enabled, each workflow resume incurs a separate function cold start, which can result in significantly higher costs.

That's it. Vercel automatically:

  • Selects the Vercel World backend
  • Configures authentication using OIDC tokens
  • Provisions storage and queuing infrastructure
  • Isolates data per environment (production, preview, development)

Observability

Workflow observability is built into the Vercel dashboard on your project page. It respects your existing authentication and project permission settings.

The workflow CLI commands open a browser window deeplinked to the Vercel dashboard:

# List workflow runs (opens Vercel dashboard)
npx workflow inspect runs --backend vercel

# Launch the web UI (opens Vercel dashboard)
npx workflow web --backend vercel

The CLI automatically retrieves authentication from the Vercel CLI (vercel login) and infers project/team IDs from your local Vercel project linking.

To use the local observability UI instead of the Vercel dashboard:

npx workflow web --backend vercel --localUi

To override the automatic configuration:

npx workflow inspect runs \
  --backend vercel \
  --env production \
  --project my-project \
  --team my-team \
  --authToken <your-token>

Learn more in the Observability documentation.

Testing & Performance

E2E Tests

Partial99% passing

Spec compliance is tested against Next.js (Turbopack) built in production mode and started with `next start`. View CI run →

80
Passed
1
Failed
2
Skipped
83
Total
View comprehensive E2E test results against all frameworks/configurations
844
Passed
2
Failed
67
Skipped
913
Total

Benchmarks

Click on a benchmark to view performance history over the last 30 commits.

Benchmark
Time
MinMaxSamples
Promise.all with 10 concurrent steps
2.37s2.00s3.25s8
Promise.all with 25 concurrent steps
2.60s2.14s3.56s8
Promise.all with 50 concurrent steps
2.82s2.46s3.48s8
Promise.race with 10 concurrent steps
2.04s1.95s2.10s9
Promise.race with 25 concurrent steps
2.29s2.07s2.56s9
Promise.race with 50 concurrent steps
2.84s2.40s4.03s8
workflow with 1 step
2.06s1.81s2.47s10
workflow with 10 concurrent data payload steps (10KB)
1.79s1.43s2.89s18
workflow with 10 sequential data payload steps (10KB)
9.81s8.86s12.92s6
workflow with 10 sequential steps
17.87s17.22s18.51s2
workflow with 25 concurrent data payload steps (10KB)
2.85s2.41s3.43s21
workflow with 25 sequential data payload steps (10KB)
32.59s29.02s39.43s3
workflow with 25 sequential steps
31.73s31.13s32.32s2
workflow with 50 concurrent data payload steps (10KB)
8.15s3.84s13.82s13
workflow with 50 sequential data payload steps (10KB)
637.10s637.10s637.10s1
workflow with 50 sequential steps
61.58s56.41s66.75s2
workflow with no steps
556ms379ms1.39s10

Stream Benchmarks

Benchmark
Time
TTFB
Slurp
MinMaxSamples
10 parallel streams (1MB each)2.93s3.68s0ms2.39s4.18s14
fan-out fan-in 10 streams (1MB each)3.73s4.91s0ms2.94s5.16s11
stream pipeline with 5 transform steps (1MB)4.28s5.45s223ms3.63s5.43s10
workflow with stream1.57s2.59s526ms1.38s2.00s10

Last updated: 3/26/2026, 12:47:11 AM · Commit: 8e7083b

Configuration

The Vercel World requires no configuration when deployed to Vercel. For advanced use cases, you can override settings programmatically via createVercelWorld().

WORKFLOW_VERCEL_ENV

The Vercel environment to use. Options: production, preview, development. Automatically detected.

WORKFLOW_VERCEL_AUTH_TOKEN

Authentication token for API requests. Automatically detected.

WORKFLOW_VERCEL_PROJECT

Vercel project ID for API requests. Automatically detected.

WORKFLOW_VERCEL_TEAM

Vercel team ID for API requests. Automatically detected.

WORKFLOW_VERCEL_BACKEND_URL

Custom base URL for the Vercel workflow API. Automatically detected.

Programmatic configuration

workflow.config.ts
import { createVercelWorld } from "@workflow/world-vercel";

const world = createVercelWorld({
  token: process.env.WORKFLOW_VERCEL_AUTH_TOKEN,
  baseUrl: "https://api.vercel.com/v1/workflow",
  projectConfig: {
    projectId: "my-project",
    teamId: "my-team",
    environment: "production",
  },
});

Versioning

On Vercel, workflow runs are pegged to the deployment that started them. This means:

  • Existing workflow runs continue executing on their original deployment, even as new code is deployed
  • New workflow runs start on the latest deployment
  • Code changes won't break in-flight workflows

This ensures long-running workflows complete reliably without being affected by subsequent deployments.

How It Works

The Vercel World uses Vercel's infrastructure for workflow execution:

  • Storage - Workflow data is stored in Vercel's cloud with automatic replication and end-to-end encryption
  • Queuing - Steps are distributed across serverless functions with automatic retries
  • Authentication - OIDC tokens provide secure, automatic authentication

For more details, see the Vercel Workflow documentation.

Pricing and More

See the Vercel Workflow documentation for current pricing and to learn more.

For self-hosted deployments, use the Postgres World. For local development, use the Local World.

Limitations

  • Single-region deployment - The backend infrastructure is currently deployed only in iad1. Applications in other regions will route workflow requests to iad1, which may result in higher latency. For best performance, deploy your Vercel apps using Workflow to iad1. Global deployment is planned to colocate the backend closer to your applications.