Skip to content

Conversation

@alex-holovach
Copy link
Contributor

Added Graphile Worker as an alternative queue driver for @workflow/world-postgres, building on top of the queue driver abstraction introduced in #332 .

Usage

Automatic selection via env var

WORKFLOW_QUEUE_DRIVER=graphile

Or explicit factory

import { createGraphileWorkerHttpProxyQueue } from '@workflow/world-postgres';

const world = createWorld({
  queueFactory: createGraphileWorkerHttpProxyQueue,
});

@changeset-bot
Copy link

changeset-bot bot commented Nov 30, 2025

🦋 Changeset detected

Latest commit: 3875887

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

This PR includes changesets to release 16 packages
Name Type
@workflow/utils Patch
@workflow/world-postgres Patch
@workflow/sveltekit Patch
@workflow/builders Patch
@workflow/core Patch
@workflow/errors Patch
@workflow/world-local Patch
workflow Patch
@workflow/cli Patch
@workflow/next Patch
@workflow/nitro Patch
@workflow/web-shared Patch
@workflow/world-vercel Patch
@workflow/ai Patch
@workflow/world-testing 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

@alex-holovach alex-holovach marked this pull request as draft November 30, 2025 18:21
@vercel
Copy link
Contributor

vercel bot commented Nov 30, 2025

@alex-holovach is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

@alex-holovach alex-holovach force-pushed the graphile-queue-driver branch 2 times, most recently from de77fcd to f5501c8 Compare December 1, 2025 00:23
paulhenri-l and others added 21 commits November 30, 2025 18:27
Signed-off-by: paulhenri-l <25308170+paulhenri-l@users.noreply.github.com>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: paulhenri-l <25308170+paulhenri-l@users.noreply.github.com>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: paulhenri-l <25308170+paulhenri-l@users.noreply.github.com>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: paulhenri-l <25308170+paulhenri-l@users.noreply.github.com>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: paulhenri-l <25308170+paulhenri-l@users.noreply.github.com>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: paulhenri-l <25308170+paulhenri-l@users.noreply.github.com>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: paulhenri-l <25308170+paulhenri-l@users.noreply.github.com>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: paulhenri-l <25308170+paulhenri-l@users.noreply.github.com>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: paulhenri-l <25308170+paulhenri-l@users.noreply.github.com>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: paulhenri-l <25308170+paulhenri-l@users.noreply.github.com>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: paulhenri-l <25308170+paulhenri-l@users.noreply.github.com>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: paulhenri-l <25308170+paulhenri-l@users.noreply.github.com>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: paulhenri-l <25308170+paulhenri-l@users.noreply.github.com>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: paulhenri-l <25308170+paulhenri-l@users.noreply.github.com>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: paulhenri-l <25308170+paulhenri-l@users.noreply.github.com>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Restores the initial attempt value to 1 to match main branch behavior
and the schema contract (StepRetryingEventSchema requires attempt >= 1).

Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
* fix(utils): detect linux ports via /proc

Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>

* extract parsePort helper

Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>

* add changeset

Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>

---------

Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
…rt support

Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
@alex-holovach alex-holovach marked this pull request as ready for review December 1, 2025 00:35
@alex-holovach
Copy link
Contributor Author

alex-holovach commented Dec 1, 2025

Create PR Comment job fails with error:

image

@pranaygp Is it missing some permissions?

Comment on lines +54 to +55
// Backend can be: local, postgres, postgres-pgboss, postgres-graphile, vercel
const knownBackends = [
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm actively making improvements to the benchmarking stuff so expect some merge conflicts on adding your own stuff to benchmark

@pranaygp
Copy link
Collaborator

pranaygp commented Dec 1, 2025

I don't think we're going to "queue driver" approach (see #332 (comment)) - it defeats the point of the world abstraction

if graphile is a good replacement for pgboss and is faster, then I'm down to just swap out the pg boss implementation in postgres world to use graphile. I added new benchmarks too, so if you redo the PR against the latest main and just swap out the implementation to use graphile without changing the benchmark code, I can trigger the CI testing and benchmarking for you

@alex-holovach
Copy link
Contributor Author

Agreed, exposing the queue driver adds complexity without clear value for users in this case. I was exploring this to see if we could get lower latency for the Postgres world. Let's see how #332 lands, and I'll revisit this based on that direction.

@alex-holovach alex-holovach marked this pull request as draft December 1, 2025 13:35
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.

3 participants