Gearman vs pg-boss
Gearman
gearman.orgpg-boss
pgboss.ioSide by side
| Figure | Gearman | pg-boss |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | Yes | — |
| Web | — | Yes |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 2 | 1 |
| Spec score · Task Queue Software | 8.8 (#4) | 8.2 (#8) |
| What it does | Gearman distributes work to other machines or processes for parallel execution, load balancing, and cross-language function calls. | pg-boss is a Node.js job queue built on PostgreSQL for background processing and reliable asynchronous execution. |
Plans
In their own words
Gearman
Gearman is a free, self-hosted application framework for distributing work across machines or processes. A client submits jobs, a job server routes them, and a worker performs them, allowing parallel processing and load balancing. Jobs can run asynchronously in the background or receive priorities. Clients and workers may use different language interfaces when they understand the workload; listed interfaces include C, C#/.NET, Go, Java, Node.js, PHP, Perl, Python, Ruby, Rust, and Lisp. Messages can reach 4 GB, with chunking for larger messages. Clients and workers can connect to multiple job servers and fail over when one dies. The C job server supports persistent queues. MySQL and PostgreSQL functions expose client calls to queries, triggers, and stored procedures, while the pure Perl API supports SSL. Gearman runs on Linux and Windows, offers API access, and is licensed under BSD. GearmanSharp is incomplete.
pg-boss
pg-boss is a Node.js job queue that uses PostgreSQL for background processing and asynchronous job execution. It can add a job in the same database transaction as the data change it belongs to, so the job is created only when that transaction commits. Workers use PostgreSQL SKIP LOCKED to claim jobs without blocking one another, with atomic commit safety; delivery is at least once, so a handler may run more than once. Queue controls include priorities, rate limits, debouncing, concurrency policies, retries with exponential backoff, and dead-letter queues. Scheduling covers cron and RRULE, deferral, and dependency-based workflows. Transaction adapters are available for Knex, Kysely, Drizzle, and Prisma. Supported databases include PostgreSQL, CockroachDB, YugabyteDB, Citus, and PGlite. A dashboard can monitor and manage jobs, queues, and schedules, while a JSON HTTP API proxy serves non-Node runtimes. It is MIT-licensed and self-hosted, with a listed price of free. It requires Node 22.12 or higher or Bun, plus PostgreSQL 13 or higher.