') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); Update to latest queue client version by karthikscale3 · Pull Request #1987 · vercel/workflow · GitHub
Skip to content

Update to latest queue client version - #1987

Merged
karthikscale3 merged 1 commit into
mainfrom
update-queue-client-v0.1.7
May 14, 2026
Merged

Update to latest queue client version#1987
karthikscale3 merged 1 commit into
mainfrom
update-queue-client-v0.1.7

Conversation

@karthikscale3

@karthikscale3karthikscale3 commented May 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Test plan

  • pnpm install --lockfile-only resolves cleanly
  • pnpm --filter @workflow/world-vercel --filter @workflow/world-local --filter @workflow/world-postgres typecheck
  • pnpm --filter @workflow/world-vercel --filter @workflow/world-local test (world-postgres tests skipped locally — require Docker for testcontainers)

Replaces #1980 (originally opened from a fork; recreated from the main repo so CI/deployments have full access).

@karthikscale3
karthikscale3 requested a review from a team as a code ownerMay 14, 2026 18:58
@karthikscale3karthikscale3 added the backport-stable Cherry-pick this PR to the stable branch when merged label May 14, 2026
@changeset-bot

changeset-botBot commented May 14, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 322e934

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

This PR includes changesets to release 19 packages
NameType
@workflow/world-vercelPatch
@workflow/cliPatch
@workflow/corePatch
@workflow/webPatch
tarballsPatch
workflowPatch
@workflow/world-testingPatch
@workflow/buildersPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/vitestPatch
@workflow/web-sharedPatch
@workflow/aiPatch
@workflow/astroPatch
@workflow/nestPatch
@workflow/rollupPatch
@workflow/sveltekitPatch
@workflow/vitePatch
@workflow/nuxtPatch

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

@github-actions

github-actionsBot commented May 14, 2026

Copy link
Copy Markdown
Contributor

🧪 E2E Test Results

All tests passed

Summary

PassedFailedSkippedTotal
✅ ▲ Vercel Production120002191419
✅ 💻 Local Development158702191806
✅ 📦 Local Production158702191806
✅ 🐘 Local Postgres158702191806
✅ 🪟 Windows12900129
✅ 📋 Other7270176903
Total6817010527869

Details by Category

✅ ▲ Vercel Production
AppPassedFailedSkipped
✅ astro103026
✅ example103026
✅ express103026
✅ fastify103026
✅ hono103026
✅ nextjs-turbopack12702
✅ nextjs-webpack12702
✅ nitro103026
✅ nuxt103026
✅ sveltekit12207
✅ vite103026
✅ 💻 Local Development
AppPassedFailedSkipped
✅ astro-stable104025
✅ express-stable104025
✅ fastify-stable104025
✅ hono-stable104025
✅ nextjs-turbopack-canary110019
✅ nextjs-turbopack-stable-lazy-discovery-disabled12900
✅ nextjs-turbopack-stable-lazy-discovery-enabled12900
✅ nextjs-webpack-canary110019
✅ nextjs-webpack-stable-lazy-discovery-disabled12900
✅ nextjs-webpack-stable-lazy-discovery-enabled12900
✅ nitro-stable104025
✅ nuxt-stable104025
✅ sveltekit-stable12306
✅ vite-stable104025
✅ 📦 Local Production
AppPassedFailedSkipped
✅ astro-stable104025
✅ express-stable104025
✅ fastify-stable104025
✅ hono-stable104025
✅ nextjs-turbopack-canary110019
✅ nextjs-turbopack-stable-lazy-discovery-disabled12900
✅ nextjs-turbopack-stable-lazy-discovery-enabled12900
✅ nextjs-webpack-canary110019
✅ nextjs-webpack-stable-lazy-discovery-disabled12900
✅ nextjs-webpack-stable-lazy-discovery-enabled12900
✅ nitro-stable104025
✅ nuxt-stable104025
✅ sveltekit-stable12306
✅ vite-stable104025
✅ 🐘 Local Postgres
AppPassedFailedSkipped
✅ astro-stable104025
✅ express-stable104025
✅ fastify-stable104025
✅ hono-stable104025
✅ nextjs-turbopack-canary110019
✅ nextjs-turbopack-stable-lazy-discovery-disabled12900
✅ nextjs-turbopack-stable-lazy-discovery-enabled12900
✅ nextjs-webpack-canary110019
✅ nextjs-webpack-stable-lazy-discovery-disabled12900
✅ nextjs-webpack-stable-lazy-discovery-enabled12900
✅ nitro-stable104025
✅ nuxt-stable104025
✅ sveltekit-stable12306
✅ vite-stable104025
✅ 🪟 Windows
AppPassedFailedSkipped
✅ nextjs-turbopack12900
✅ 📋 Other
AppPassedFailedSkipped
✅ e2e-local-dev-nest-stable104025
✅ e2e-local-dev-tanstack-start-104025
✅ e2e-local-postgres-nest-stable104025
✅ e2e-local-postgres-tanstack-start-104025
✅ e2e-local-prod-nest-stable104025
✅ e2e-local-prod-tanstack-start-104025
✅ e2e-vercel-prod-tanstack-start103026

📋 View full workflow run

@github-actions

github-actionsBot commented May 14, 2026

Copy link
Copy Markdown
Contributor

📊 Benchmark Results

📈 Comparing against baseline from main branch. Green 🟢 = faster, Red 🔺 = slower.

workflow with no steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Nitro0.032s (-25.1% 🟢)1.005s (~)0.973s101.00x
💻 LocalExpress0.033s (-25.5% 🟢)1.005s (~)0.972s101.02x
🐘 PostgresNitro0.049s (-49.1% 🟢)1.012s (-3.0%)0.963s101.50x
🐘 PostgresExpress0.051s (-11.9% 🟢)1.012s (~)0.961s101.58x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro0.256s (-37.6% 🟢)2.111s (-15.9% 🟢)1.855s101.00x
▲ VercelNext.js (Turbopack)0.310s (+23.3% 🔺)2.193s (-6.0% 🟢)1.883s101.21x
▲ VercelExpress0.327s (+39.0% 🔺)2.244s (+5.1% 🔺)1.916s101.28x

🔍 Observability: Nitro | Next.js (Turbopack) | Express

workflow with 1 step

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Express1.067s (-5.1% 🟢)2.006s (~)0.939s101.00x
💻 LocalNitro1.071s (-5.3% 🟢)2.006s (~)0.935s101.00x
🐘 PostgresExpress1.085s (-5.3% 🟢)2.008s (~)0.923s101.02x
🐘 PostgresNitro1.089s (-4.5%)2.010s (~)0.921s101.02x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro1.610s (-58.6% 🟢)3.344s (-43.4% 🟢)1.734s101.00x
▲ VercelNext.js (Turbopack)1.672s (-17.9% 🟢)3.754s (-2.0%)2.083s101.04x
▲ VercelExpress2.173s (+15.9% 🔺)4.317s (+13.4% 🔺)2.144s101.35x

🔍 Observability: Nitro | Next.js (Turbopack) | Express

workflow with 10 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Express10.391s (-4.9%)11.022s (~)0.631s31.00x
🐘 PostgresExpress10.418s (-5.0%)11.016s (~)0.599s31.00x
🐘 PostgresNitro10.430s (-4.1%)11.018s (~)0.588s31.00x
💻 LocalNitro10.437s (-4.6%)11.023s (~)0.586s31.00x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Next.js (Turbopack)13.180s (-23.9% 🟢)15.095s (-22.2% 🟢)1.915s31.00x
▲ VercelExpress13.435s (-20.9% 🟢)15.499s (-22.6% 🟢)2.064s21.02x
▲ VercelNitro13.610s (-42.7% 🟢)14.891s (-40.7% 🟢)1.281s31.03x

🔍 Observability: Next.js (Turbopack) | Express | Nitro

workflow with 25 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express13.466s (-7.7% 🟢)14.017s (-6.7% 🟢)0.551s51.00x
💻 LocalExpress13.467s (-10.0% 🟢)14.027s (-6.7% 🟢)0.560s51.00x
🐘 PostgresNitro13.470s (-7.7% 🟢)14.016s (-6.7% 🟢)0.546s51.00x
💻 LocalNitro13.503s (-10.4% 🟢)14.028s (-12.5% 🟢)0.525s51.00x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Next.js (Turbopack)20.954s (-60.1% 🟢)23.107s (-57.7% 🟢)2.153s31.00x
▲ VercelExpress23.216s (-53.9% 🟢)25.560s (-51.4% 🟢)2.343s31.11x
▲ VercelNitro23.370s (-63.7% 🟢)25.180s (-62.2% 🟢)1.810s31.12x

🔍 Observability: Next.js (Turbopack) | Express | Nitro

workflow with 50 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Express11.856s (-28.6% 🟢)12.021s (-29.4% 🟢)0.165s81.00x
🐘 PostgresNitro11.963s (-14.3% 🟢)12.264s (-14.3% 🟢)0.301s81.01x
💻 LocalNitro12.031s (-28.3% 🟢)12.524s (-26.5% 🟢)0.494s81.01x
🐘 PostgresExpress12.065s (-13.9% 🟢)12.767s (-12.5% 🟢)0.702s81.02x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Express31.435s (-74.1% 🟢)33.600s (-72.8% 🟢)2.165s31.00x
▲ VercelNitro32.221s (-92.4% 🟢)34.237s (-91.9% 🟢)2.016s31.03x
▲ VercelNext.js (Turbopack)32.650s (-91.7% 🟢)34.713s (-91.2% 🟢)2.063s31.04x

🔍 Observability: Express | Nitro | Next.js (Turbopack)

Promise.all with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Nitro1.148s (-10.0% 🟢)2.008s (~)0.860s151.00x
🐘 PostgresExpress1.153s (-8.5% 🟢)2.007s (~)0.854s151.01x
💻 LocalExpress1.171s (-21.4% 🟢)2.006s (~)0.835s151.02x
💻 LocalNitro1.190s (-27.1% 🟢)2.006s (-3.3%)0.816s151.04x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Express2.631s (-8.0% 🟢)4.190s (-9.4% 🟢)1.559s81.00x
▲ VercelNitro2.648s (-6.0% 🟢)4.116s (-4.8%)1.468s81.01x
▲ VercelNext.js (Turbopack)2.767s (-18.6% 🟢)4.634s (-6.1% 🟢)1.866s71.05x

🔍 Observability: Express | Nitro | Next.js (Turbopack)

Promise.all with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Nitro1.203s (-48.8% 🟢)2.007s (-33.3% 🟢)0.804s151.00x
🐘 PostgresExpress1.210s (-48.7% 🟢)2.008s (-33.3% 🟢)0.797s151.01x
💻 LocalExpress1.685s (-42.9% 🟢)2.005s (-41.9% 🟢)0.320s151.40x
💻 LocalNitro1.882s (-40.1% 🟢)2.222s (-42.8% 🟢)0.339s141.56x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Next.js (Turbopack)3.562s (-49.8% 🟢)5.397s (-39.4% 🟢)1.835s61.00x
▲ VercelNitro3.775s (-6.8% 🟢)5.420s (-8.5% 🟢)1.646s61.06x
▲ VercelExpress4.781s (+32.1% 🔺)6.424s (+25.7% 🔺)1.643s51.34x

🔍 Observability: Next.js (Turbopack) | Nitro | Express

Promise.all with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.324s (-62.0% 🟢)2.008s (-49.9% 🟢)0.684s151.00x
🐘 PostgresNitro1.332s (-61.7% 🟢)2.007s (-49.9% 🟢)0.675s151.01x
💻 LocalExpress4.844s (-41.9% 🟢)5.345s (-40.8% 🟢)0.501s63.66x
💻 LocalNitro5.534s (-33.7% 🟢)6.014s (-33.3% 🟢)0.479s54.18x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro5.258s (+49.2% 🔺)7.024s (+26.9% 🔺)1.766s51.00x
▲ VercelNext.js (Turbopack)5.802s (-34.9% 🟢)7.440s (-32.1% 🟢)1.638s51.10x
▲ VercelExpress6.223s (+46.8% 🔺)8.186s (+33.6% 🔺)1.963s41.18x

🔍 Observability: Nitro | Next.js (Turbopack) | Express

Promise.race with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Nitro1.140s (-9.3% 🟢)2.009s (~)0.869s151.00x
🐘 PostgresExpress1.155s (-8.1% 🟢)2.008s (~)0.853s151.01x
💻 LocalExpress1.399s (-26.1% 🟢)2.006s (-15.1% 🟢)0.607s151.23x
💻 LocalNitro1.437s (-23.0% 🟢)2.007s (-14.3% 🟢)0.570s151.26x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Express2.648s (+2.6%)4.328s (~)1.680s81.00x
▲ VercelNitro2.747s (+11.7% 🔺)4.325s (+3.7%)1.578s71.04x
▲ VercelNext.js (Turbopack)2.895s (-1.2%)4.660s (~)1.765s71.09x

🔍 Observability: Express | Nitro | Next.js (Turbopack)

Promise.race with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.212s (-48.2% 🟢)2.009s (-33.3% 🟢)0.797s151.00x
🐘 PostgresNitro1.215s (-48.1% 🟢)2.009s (-33.3% 🟢)0.793s151.00x
💻 LocalExpress1.999s (-36.2% 🟢)2.392s (-36.4% 🟢)0.393s131.65x
💻 LocalNitro2.213s (-27.8% 🟢)2.675s (-31.2% 🟢)0.462s121.83x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro3.853s (+19.2% 🔺)5.621s (+10.7% 🔺)1.768s61.00x
▲ VercelExpress4.019s (+25.9% 🔺)5.581s (+16.5% 🔺)1.562s61.04x
▲ VercelNext.js (Turbopack)4.282s (+36.3% 🔺)5.991s (+32.5% 🔺)1.709s61.11x

🔍 Observability: Nitro | Express | Next.js (Turbopack)

Promise.race with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Nitro1.309s (-62.4% 🟢)2.007s (-49.9% 🟢)0.698s151.00x
🐘 PostgresExpress1.323s (-62.2% 🟢)2.007s (-50.0% 🟢)0.684s151.01x
💻 LocalExpress4.615s (-47.6% 🟢)5.178s (-44.2% 🟢)0.563s63.53x
💻 LocalNitro5.569s (-39.1% 🟢)6.021s (-39.9% 🟢)0.453s54.26x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro5.431s (+6.6% 🔺)7.200s (+5.6% 🔺)1.769s51.00x
▲ VercelExpress5.859s (-8.7% 🟢)7.769s (-5.0% 🟢)1.909s41.08x
▲ VercelNext.js (Turbopack)6.755s (~)8.628s (+1.0%)1.873s41.24x

🔍 Observability: Nitro | Express | Next.js (Turbopack)

workflow with 10 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.451s (-46.2% 🟢)1.023s (~)0.572s591.00x
🐘 PostgresNitro0.455s (-44.5% 🟢)1.023s (+1.7%)0.568s591.01x
💻 LocalNitro0.484s (-50.7% 🟢)1.005s (-8.2% 🟢)0.521s601.07x
💻 LocalExpress0.488s (-50.4% 🟢)1.004s (-6.7% 🟢)0.516s601.08x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Next.js (Turbopack)5.125s (-64.7% 🟢)7.035s (-56.3% 🟢)1.909s91.00x
▲ VercelExpress5.610s (-70.5% 🟢)7.160s (-66.4% 🟢)1.551s91.09x
▲ VercelNitro5.734s (-74.0% 🟢)7.229s (-69.9% 🟢)1.495s91.12x

🔍 Observability: Next.js (Turbopack) | Express | Nitro

workflow with 25 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.044s (-47.2% 🟢)1.642s (-27.3% 🟢)0.599s551.00x
🐘 PostgresNitro1.053s (-45.4% 🟢)1.771s (-15.7% 🟢)0.719s511.01x
💻 LocalExpress1.168s (-61.3% 🟢)2.005s (-44.1% 🟢)0.838s451.12x
💻 LocalNitro1.325s (-56.3% 🟢)2.123s (-43.5% 🟢)0.797s431.27x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Express14.075s (-59.2% 🟢)16.609s (-54.9% 🟢)2.534s61.00x
▲ VercelNext.js (Turbopack)14.879s (-70.1% 🟢)17.217s (-66.7% 🟢)2.337s61.06x
▲ VercelNitro15.306s (-61.2% 🟢)16.900s (-59.1% 🟢)1.594s61.09x

🔍 Observability: Express | Next.js (Turbopack) | Nitro

workflow with 50 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.044s (-48.8% 🟢)2.507s (-42.6% 🟢)0.463s481.00x
🐘 PostgresNitro2.073s (-49.5% 🟢)2.616s (-43.2% 🟢)0.544s461.01x
💻 LocalExpress2.651s (-71.2% 🟢)3.007s (-70.0% 🟢)0.357s401.30x
💻 LocalNitro2.827s (-69.6% 🟢)3.136s (-68.7% 🟢)0.309s391.38x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Next.js (Turbopack)44.150s (-58.8% 🟢)46.789s (-57.0% 🟢)2.639s31.00x
▲ VercelExpress44.671s (-65.6% 🟢)46.937s (-64.5% 🟢)2.267s31.01x
▲ VercelNitro47.004s (-51.5% 🟢)49.033s (-50.2% 🟢)2.030s31.06x

🔍 Observability: Next.js (Turbopack) | Express | Nitro

workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Nitro0.174s (-38.5% 🟢)1.006s (~)0.831s601.00x
🐘 PostgresExpress0.178s (-36.9% 🟢)1.006s (~)0.828s601.02x
💻 LocalExpress0.431s (-23.1% 🟢)1.004s (~)0.573s602.47x
💻 LocalNitro0.447s (-26.1% 🟢)1.004s (-1.7%)0.558s602.56x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro2.735s (+64.7% 🔺)4.018s (+19.9% 🔺)1.283s161.00x
▲ VercelNext.js (Turbopack)2.797s (+38.3% 🔺)4.302s (+13.4% 🔺)1.505s141.02x
▲ VercelExpress3.123s (+59.8% 🔺)4.871s (+33.9% 🔺)1.747s131.14x

🔍 Observability: Nitro | Next.js (Turbopack) | Express

workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Nitro0.294s (-40.7% 🟢)1.006s (~)0.712s901.00x
🐘 PostgresExpress0.297s (-41.7% 🟢)1.006s (~)0.709s901.01x
💻 LocalNitro2.214s (-12.8% 🟢)3.008s (~)0.795s307.52x
💻 LocalExpress2.214s (-11.9% 🟢)2.766s (-8.1% 🟢)0.552s337.52x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Express9.317s (+205.8% 🔺)11.306s (+135.2% 🔺)1.989s81.00x
▲ VercelNext.js (Turbopack)9.415s (+166.3% 🔺)11.289s (+117.4% 🔺)1.874s91.01x
▲ VercelNitro10.458s (+224.2% 🔺)11.491s (+138.3% 🔺)1.033s81.12x

🔍 Observability: Express | Next.js (Turbopack) | Nitro

workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Nitro0.609s (-22.9% 🟢)1.006s (~)0.397s1201.00x
🐘 PostgresExpress0.614s (-25.0% 🟢)1.006s (-1.1%)0.392s1201.01x
💻 LocalExpress9.915s (-11.4% 🟢)10.445s (-12.5% 🟢)0.530s1216.28x
💻 LocalNitro10.210s (-8.8% 🟢)10.613s (-9.0% 🟢)0.404s1216.77x
💻 LocalNext.js (Turbopack)⚠️missing----
🐘 PostgresNext.js (Turbopack)⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro22.691s (+193.8% 🔺)24.174s (+157.2% 🔺)1.483s51.00x
▲ VercelExpress25.496s (+243.6% 🔺)27.269s (+195.0% 🔺)1.773s51.12x
▲ VercelNext.js (Turbopack)26.530s (+156.9% 🔺)28.452s (+131.6% 🔺)1.922s51.17x

🔍 Observability: Nitro | Express | Next.js (Turbopack)

Stream Benchmarks(includes TTFB metrics)
workflow with stream

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Express1.130s (+467.4% 🔺)2.005s (+99.6% 🔺)0.010s (-15.7% 🟢)2.018s (+98.2% 🔺)0.888s101.00x
🐘 PostgresNitro1.132s (+452.1% 🔺)1.998s (+99.9% 🔺)0.001s (-13.3% 🟢)2.010s (+98.8% 🔺)0.878s101.00x
💻 LocalNitro1.143s (+435.0% 🔺)2.005s (+99.6% 🔺)0.013s (+2.4%)2.020s (+98.3% 🔺)0.877s101.01x
🐘 PostgresExpress1.155s (+463.0% 🔺)1.999s (+100.2% 🔺)0.002s (+6.2% 🔺)2.010s (+98.8% 🔺)0.856s101.02x
💻 LocalNext.js (Turbopack)⚠️missing-----
🐘 PostgresNext.js (Turbopack)⚠️missing-----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Express2.227s (-11.1% 🟢)3.336s (-18.4% 🟢)1.995s (+107.7% 🔺)5.800s (+3.7%)3.573s101.00x
▲ VercelNext.js (Turbopack)2.236s (-67.4% 🟢)3.396s (-60.7% 🟢)2.021s (+219.9% 🔺)5.928s (-39.4% 🟢)3.692s101.00x
▲ VercelNitro2.559s (-33.2% 🟢)3.267s (-38.1% 🟢)2.892s (+289.7% 🔺)6.774s (+4.5%)4.215s101.15x

🔍 Observability: Express | Next.js (Turbopack) | Nitro

stream pipeline with 5 transform steps (1MB)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Express1.513s (+99.8% 🔺)2.012s (+95.5% 🔺)0.009s (+0.9%)2.023s (+94.6% 🔺)0.510s301.00x
🐘 PostgresExpress1.516s (+140.6% 🔺)2.005s (+99.2% 🔺)0.004s (-1.7%)2.026s (+98.0% 🔺)0.510s301.00x
🐘 PostgresNitro1.530s (+145.2% 🔺)2.005s (+99.1% 🔺)0.004s (-7.3% 🟢)2.024s (+98.0% 🔺)0.494s301.01x
💻 LocalNitro1.720s (+105.0% 🔺)2.012s (+98.8% 🔺)0.010s (+7.9% 🔺)2.204s (+97.5% 🔺)0.484s281.14x
💻 LocalNext.js (Turbopack)⚠️missing-----
🐘 PostgresNext.js (Turbopack)⚠️missing-----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Express6.326s (-2.7%)8.164s (+1.9%)0.222s (-45.6% 🟢)8.854s (~)2.529s71.00x
▲ VercelNext.js (Turbopack)6.473s (-61.7% 🟢)8.108s (-55.6% 🟢)0.269s (+27.2% 🔺)8.869s (-53.2% 🟢)2.395s71.02x
▲ VercelNitro6.599s (-77.6% 🟢)7.766s (-74.8% 🟢)0.177s (+57.8% 🔺)8.374s (-73.6% 🟢)1.774s81.04x

🔍 Observability: Express | Next.js (Turbopack) | Nitro

10 parallel streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.658s (-31.6% 🟢)1.029s (-19.5% 🟢)0.000s (-59.6% 🟢)1.060s (-18.9% 🟢)0.402s571.00x
🐘 PostgresNitro0.682s (-29.6% 🟢)1.031s (-17.4% 🟢)0.000s (-58.6% 🟢)1.050s (-16.5% 🟢)0.368s581.04x
💻 LocalNitro1.333s (+9.0% 🔺)2.015s (~)0.000s (+166.7% 🔺)2.017s (~)0.684s302.03x
💻 LocalExpress1.380s (+12.7% 🔺)2.015s (~)0.000s (+10.0% 🔺)2.017s (~)0.637s302.10x
💻 LocalNext.js (Turbopack)⚠️missing-----
🐘 PostgresNext.js (Turbopack)⚠️missing-----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Next.js (Turbopack)4.102s (-59.7% 🟢)5.734s (-50.2% 🟢)0.000s (+Infinity% 🔺)6.218s (-48.4% 🟢)2.116s101.00x
▲ VercelExpress4.311s (+15.2% 🔺)5.777s (+13.2% 🔺)0.000s (-45.0% 🟢)6.238s (+12.8% 🔺)1.927s101.05x
▲ VercelNitro4.540s (+48.8% 🔺)5.410s (+23.2% 🔺)0.001s (+1790.9% 🔺)5.809s (+20.8% 🔺)1.269s111.11x

🔍 Observability: Next.js (Turbopack) | Express | Nitro

fan-out fan-in 10 streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.335s (-24.7% 🟢)2.028s (-6.9% 🟢)0.000s (+Infinity% 🔺)2.044s (-7.0% 🟢)0.709s301.00x
🐘 PostgresNitro1.336s (-25.4% 🟢)2.028s (-5.3% 🟢)0.000s (+273.3% 🔺)2.053s (-5.6% 🟢)0.717s301.00x
💻 LocalExpress3.025s (-12.8% 🟢)3.733s (-7.4% 🟢)0.000s (-63.2% 🟢)3.736s (-7.5% 🟢)0.711s172.27x
💻 LocalNitro3.102s (-8.4% 🟢)3.902s (-3.2%)0.001s (-6.2% 🟢)3.907s (-3.2%)0.805s162.32x
💻 LocalNext.js (Turbopack)⚠️missing-----
🐘 PostgresNext.js (Turbopack)⚠️missing-----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Express6.409s (+39.7% 🔺)7.900s (+31.2% 🔺)0.001s (+Infinity% 🔺)8.395s (+30.0% 🔺)1.987s81.00x
▲ VercelNext.js (Turbopack)6.419s (+14.3% 🔺)7.737s (+10.8% 🔺)0.000s (~)8.304s (+10.1% 🔺)1.885s81.00x
▲ VercelNitro6.710s (+63.9% 🔺)7.832s (+45.7% 🔺)0.001s (+129.2% 🔺)8.219s (+41.9% 🔺)1.509s81.05x

🔍 Observability: Express | Next.js (Turbopack) | Nitro

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World🥇 Fastest FrameworkWins
💻 LocalExpress17/21
🐘 PostgresExpress11/21
▲ VercelExpress8/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework🥇 Fastest WorldWins
Express🐘 Postgres15/21
Next.js (Turbopack)▲ Vercel21/21
Nitro🐘 Postgres19/21
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)
  • Slurp: Time from first byte to complete stream consumption (stream benchmarks only)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • Samples: Number of benchmark iterations run
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world (local development)
  • 🐘 Postgres: PostgreSQL database world (local development)
  • ▲ Vercel: Vercel production/preview deployment
  • 🌐 Turso: Community world (local development)
  • 🌐 MongoDB: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Jazz: Community world (local development)

📋 View full workflow run

@socket-security

socket-securityBot commented May 14, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

DiffPackageSupply Chain
Security
VulnerabilityQualityMaintenanceLicense
Addednpm/​@​vercel/​queue@​0.1.79610010097100

View full report

@karthikscale3
karthikscale3force-pushed the update-queue-client-v0.1.7 branch from 79d8f6f to 322e934CompareMay 14, 2026 19:05
@vercel

vercelBot commented May 14, 2026

Copy link
Copy Markdown
Contributor

@karthikscale3
karthikscale3 merged commit 22b5a12 into mainMay 14, 2026
424 of 439 checks passed
@karthikscale3
karthikscale3 deleted the update-queue-client-v0.1.7 branch May 14, 2026 22:32
github-actionsBot added a commit that referenced this pull request May 14, 2026
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Backport PR opened against stable: #1996.

pranaygp pushed a commit that referenced this pull request May 14, 2026
Signed-off-by: Karthik Kalyan <105607645+karthikscale3@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@github-actionsgithub-actionsBot mentioned this pull request May 22, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@karthikscale3@pranaygp