finds.dev← search

// the find

graphile/worker

★ 2,342 · TypeScript · MIT · updated Jul 2026

High performance Node.js/PostgreSQL job queue (also suitable for getting jobs generated by PostgreSQL triggers/functions out into a different work queue)

graphile-worker is a job queue that uses PostgreSQL as its backing store — no Redis, no separate message broker. If you're already on Postgres, you get background jobs, cron scheduling, and retry logic without adding another stateful service to your stack. The sweet spot is Node/TypeScript apps that want transactional job enqueueing (enqueue a job in the same transaction as your database write, guaranteed).

The transactional job insertion is the real differentiator — you can add a job inside a Postgres transaction and it only becomes visible to workers if the transaction commits, which eliminates an entire class of 'job fired but the write rolled back' bugs. The cron support is first-class and stored in the database, not in application config, so it survives deploys without missing runs. The SQL migration files are versioned and incremental, so the schema stays auditable and you don't need to trust a black-box ORM to manage it. Test coverage is genuinely thorough — dedicated test files for cron timing edge cases, job deduplication via job keys, batch operations, and lock reset behavior.

It's Node/TypeScript only — if you're not in that ecosystem but your database is Postgres, you're out of luck or writing your own consumer. The 'Pro' tier (referenced throughout the docs) gates some reliability features like worker recovery behind a paid license, which makes the open-source version a bit of a trial in disguise. Performance at very high throughput is limited by Postgres's row locking approach; it works fine at moderate scale but BullMQ with Redis will outrun it at tens of thousands of jobs per second. The configuration system uses a plugin/preset pattern inherited from the broader Graphile ecosystem, which is powerful but adds noticeable ceremony for simple use cases.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →