Celery vs pg-boss
Celery
docs.celeryq.devpg-boss
pgboss.ioSide by side
| Figure | Celery | pg-boss |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | — | Yes |
| macOS | Yes | — |
| Linux | Yes | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Task Queue Software | 8.1 (#11) | 8.2 (#8) |
| Scheduling | Celery Beat starts tasks at regular intervals for execution by available worker nodes. | It supports job dependency workflows, cron and RRULE scheduling, and job deferral. |
Plans
In their own words
Celery
Celery is a free, open-source distributed task queue for real-time processing and scheduled jobs. It sends task messages through a broker to worker processes, and systems can run multiple workers and brokers for high availability and horizontal scaling. Celery Beat starts tasks at regular intervals for available workers. Documented transports include RabbitMQ, Redis, Amazon SQS, Kafka and Google Pub/Sub, with different capability labels: RabbitMQ and Redis are stable, SQS is stable without monitoring or remote control, and Kafka is experimental without those features. Integrations are documented for Django, Pyramid, Pylons, Flask, web2py, Tornado and FastAPI. Commands inspect and manage workers, while Flower and event utilities provide monitoring options. Celery 5.6 supports Python 3.9 through 3.13 and PyPy 3.9 or newer. It is self-hosted, installable via PyPI or source, and licensed under the New BSD License.
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.