Skip to content

Conversation

@pranaygp
Copy link
Collaborator

@pranaygp pranaygp commented Nov 30, 2025

  • Added a new simple benchmark for streams processing/transforming along with TTFB (essential for AI agents)
  • Refactoring and QOL improvements on the benchmark itself and the github action

@changeset-bot
Copy link

changeset-bot bot commented Nov 30, 2025

🦋 Changeset detected

Latest commit: f33adf9

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 13 packages
Name Type
@workflow/world-local Patch
@workflow/cli Patch
@workflow/core Patch
@workflow/world-postgres Patch
workflow Patch
@workflow/world-testing Patch
@workflow/builders Patch
@workflow/next Patch
@workflow/nitro Patch
@workflow/web-shared Patch
@workflow/ai Patch
@workflow/sveltekit Patch
@workflow/nuxt Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel
Copy link
Contributor

vercel bot commented Nov 30, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
example-nextjs-workflow-turbopack Ready Ready Preview Comment Dec 1, 2025 7:20am
example-nextjs-workflow-webpack Ready Ready Preview Comment Dec 1, 2025 7:20am
example-workflow Ready Ready Preview Comment Dec 1, 2025 7:20am
workbench-express-workflow Ready Ready Preview Comment Dec 1, 2025 7:20am
workbench-hono-workflow Ready Ready Preview Comment Dec 1, 2025 7:20am
workbench-nitro-workflow Ready Ready Preview Comment Dec 1, 2025 7:20am
workbench-nuxt-workflow Ready Ready Preview Comment Dec 1, 2025 7:20am
workbench-sveltekit-workflow Ready Ready Preview Comment Dec 1, 2025 7:20am
workbench-vite-workflow Ready Ready Preview Comment Dec 1, 2025 7:20am
workflow-docs Ready Ready Preview Comment Dec 1, 2025 7:20am

@github-actions
Copy link
Contributor

github-actions bot commented Nov 30, 2025

📊 Benchmark Results

workflow with no steps

World Framework Workflow Time Wall Time Overhead vs Fastest
💻 Local 🥇 Next.js (Turbopack) 0.039s 1.016s 0.977s 1.00x
💻 Local Express 0.046s 1.007s 0.961s 1.17x
💻 Local Nitro 0.046s 1.006s 0.960s 1.18x
🐘 Postgres Express 0.218s 1.013s 0.795s 5.56x
🐘 Postgres Next.js (Turbopack) 0.345s 1.021s 0.676s 8.78x
🐘 Postgres Nitro 0.392s 1.012s 0.620s 9.98x
▲ Vercel Express 0.471s 1.356s 0.886s 11.97x
▲ Vercel Next.js (Turbopack) 0.472s 1.363s 0.891s 12.01x
▲ Vercel Nitro 0.615s 1.652s 1.038s 15.64x

workflow with 1 step

World Framework Workflow Time Wall Time Overhead vs Fastest
💻 Local 🥇 Next.js (Turbopack) 0.089s 1.011s 0.922s 1.00x
💻 Local Express 0.111s 1.006s 0.895s 1.25x
💻 Local Nitro 0.112s 1.005s 0.894s 1.25x
🐘 Postgres Nitro 0.713s 1.009s 0.296s 8.02x
🐘 Postgres Express 1.171s 2.012s 0.841s 13.17x
🐘 Postgres Next.js (Turbopack) 1.333s 2.017s 0.684s 15.00x
▲ Vercel Next.js (Turbopack) 1.372s 2.263s 0.890s 15.43x
▲ Vercel Express 1.406s 2.393s 0.987s 15.81x
▲ Vercel Nitro 1.470s 2.534s 1.065s 16.53x

workflow with 10 sequential steps

World Framework Workflow Time Wall Time Overhead vs Fastest
💻 Local 🥇 Next.js (Turbopack) 0.621s 1.009s 0.388s 1.00x
💻 Local Nitro 0.773s 1.006s 0.233s 1.25x
💻 Local Express 0.774s 1.007s 0.233s 1.25x
🐘 Postgres Nitro 5.055s 5.814s 0.759s 8.14x
🐘 Postgres Express 5.462s 6.015s 0.553s 8.79x
▲ Vercel Next.js (Turbopack) 9.478s 10.301s 0.822s 15.26x
▲ Vercel Express 9.660s 10.400s 0.740s 15.55x
▲ Vercel Nitro 9.849s 10.647s 0.798s 15.86x
🐘 Postgres Next.js (Turbopack) 10.194s 11.029s 0.835s 16.41x

workflow with 10 parallel steps

World Framework Workflow Time Wall Time Overhead vs Fastest
💻 Local 🥇 Next.js (Turbopack) 0.380s 1.011s 0.631s 1.00x
💻 Local Express 0.394s 1.006s 0.612s 1.04x
💻 Local Nitro 0.394s 1.005s 0.611s 1.04x
🐘 Postgres Nitro 0.761s 1.410s 0.648s 2.01x
🐘 Postgres Next.js (Turbopack) 1.285s 2.015s 0.729s 3.39x
🐘 Postgres Express 1.474s 2.011s 0.537s 3.88x
▲ Vercel Next.js (Turbopack) 2.560s 3.386s 0.827s 6.74x
▲ Vercel Nitro 2.619s 3.428s 0.809s 6.90x
▲ Vercel Express 2.647s 3.685s 1.039s 6.97x

Stream Benchmarks

Stream benchmarks include Time to First Byte (TTFB) metrics.

workflow with stream

World Framework Workflow Time TTFB Wall Time Overhead vs Fastest
💻 Local 🥇 Next.js (Turbopack) 0.164s 1.002s 1.013s 0.849s 1.00x
💻 Local Nitro 0.174s 0.992s 1.008s 0.834s 1.06x
💻 Local Express 0.175s 0.991s 1.009s 0.833s 1.07x
🐘 Postgres Nitro 0.908s 1.471s 1.613s 0.704s 5.54x
🐘 Postgres Next.js (Turbopack) 1.070s 1.509s 1.715s 0.645s 6.53x
🐘 Postgres Express 1.220s 1.819s 2.011s 0.791s 7.44x
▲ Vercel Next.js (Turbopack) 2.208s 2.313s 2.621s 0.414s 13.47x
▲ Vercel Express 2.254s 2.489s 2.845s 0.590s 13.75x
▲ Vercel Nitro 2.282s 2.468s 2.864s 0.581s 13.92x

Summary: Fastest Framework by World

Winner determined by most benchmark wins

World 🥇 Fastest Framework Wins
💻 Local Next.js (Turbopack) 5/5
🐘 Postgres Nitro 4/5
▲ Vercel Next.js (Turbopack) 4/5

Summary: Fastest World by Framework

Winner determined by most benchmark wins

Framework 🥇 Fastest World Wins
Express 💻 Local 5/5
Next.js (Turbopack) 💻 Local 5/5
Nitro 💻 Local 5/5
Column Definitions
  • Workflow Time: Runtime reported by workflow (completedAt - createdAt) - primary metric
  • TTFB: Time to First Byte - time from workflow start until first stream byte received (stream benchmarks only)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world
  • 🐘 Postgres: PostgreSQL database world
  • ▲ Vercel: Vercel production world

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants