pg-boss
Node.js job queues with explicit queue policies and transaction adapters.
View pinned source / version d4400859eed2 · Features reviewed against pinned default-branch source; release label is separately verified, not assumed to be the benchmark adapter version.
What this system is built around
PostgreSQL job queues with configurable duplicate policies, retries, scheduling and transaction adapters.
Consider when a Node application needs database transaction adapters plus queue policy controls. Choose heartbeat, expiration and worker transaction settings explicitly for your workload.
Editorial fit, based on the cited design. Verify against your workload.Semantics & operating model
Concise claims with their scope intact. “Not verified” means this review did not establish the answer.
Claiming & concurrency
DocumentedlocalConcurrency is per process. Group concurrency options and queue policies have separate scopes; do not treat a per-process number as a fleet-wide limit.
Transactional enqueue
Documentedsend, insert, fetch and complete accept a db transaction adapter. transactional workers can commit same-database handler SQL with completion. External API calls are outside that transaction.
Crash recovery & retries
DocumentedHeartbeat detection is disabled by default; expiration defaults to 15 minutes. Both route to retry/failure policy. Late settlement is guarded by the claimed retryCount.
Delayed & recurring work
DocumentedSchedules need a running instance; evaluation has minute-level filing precision. Catch-up is skip by default, with a once policy for missed occurrences.
Uniqueness / deduplication
Documentedstandard, short, singleton, stately, exclusive and key_strict_fifo policies have different queued/active constraints and can use singletonKey. These are not permanent external-effect deduplication.
Postgres extension required
Not requiredStock PostgreSQL is the primary backend; installation creates pg-boss schema objects. Current package requires Node >=22.12; overview lists PostgreSQL >=13.
Operator interface
Documented@pg-boss/dashboard is documented for queues, jobs and schedules; this is a separate package, not a claim about older benchmark versions.
Tradeoffs to carry into a test
A partitioned or event-loop-stalled old handler may still execute after rescue, despite guarded completion.
Queue policies, retry and recoveryTransactional workers hold a connection and transaction for handler duration; long jobs can delay vacuum.
Worker concurrency and transactional handlers