vercel / vercel/workflow

Refactor world-postgres queue execution away from loopback HTTP

Open
#2,658 0 comments 1 reaction 1 assignee View on GitHub

@NathanColosimo is already working on this.

Since Jun 26, 2026.

Dominant language
TypeScript
Stars
2.4k
Forks
365
Avg merge
2d 11h
Merged PRs (30d)
169

Description

Summary

@workflow/world-postgres currently executes Graphile jobs by POSTing back into the app workflow HTTP route. That kept Next production route registration correct after #1417, but #2656 shows the loopback transport can consume jobs before the local server is reachable.

Proposal

Retry the #1334 direction, but keep the implementation small: let Postgres own the queue-handler wrapper it needs, register the generated workflow handler in-process, and have Graphile call that handler directly. Durable delays and retries should stay in Graphile, and the code should not reintroduce a dependency on @workflow/world-local for queue execution.

Context

  • Symptom: #2656
  • Prior direct attempt: #1334
  • HTTP-only revert/fix: #1417

Acceptance criteria

  • Graphile workers do not need WORKFLOW_LOCAL_BASE_URL, PORT, or loopback fetch to execute workflow messages.
  • The returned HTTP handler still works for framework route requests and health checks.
  • Delayed re-execution remains durable via Graphile runAt jobs.
  • The old #1417 production failure mode is covered by tests or made impossible by the current combined route registration path.
  • The final diff removes more Postgres/local coupling than it adds.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.