← All systems
Job frameworkAdapter in this repo

River

A PostgreSQL job framework with a shared format across language clients.

API / SDK surfaceGo · Ruby · Rust · TypeScript
Inspected snapshotGo v0.49.0 · source snapshot
Sources checked2026-10-23
License at snapshotMPL-2.0

View pinned source / version 86f19649c873 · Repository latest-release endpoint currently returns a Ruby package release; Go module latest was verified separately. Current docs cover multiple languages and SQLite as well as PostgreSQL. Benchmark adapter Go version is separate.

What this system is built around

A PostgreSQL job framework with a shared format across language clients.

A useful starting point

Useful when a PostgreSQL job lifecycle and transactional application integration are central; current clients share a cross-language job format. The repository benchmark measures the Go adapter, not every language implementation.

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

Documented

PostgreSQL claims use FOR UPDATE SKIP LOCKED; OSS clients set per-queue worker counts. Cluster-wide concurrency controls are a Pro feature.

Transactional enqueue

Documented

InsertTx can commit a job atomically with application changes in the same PostgreSQL transaction. Go also supports JobCompleteTx for completion plus local writes; this does not cover external side effects.

Crash recovery & retries

Documented

Ordinary workers execute at least once; failed completion persistence or a process crash may cause another execution. Retry policy is configurable with a finite attempt budget.

Delayed & recurring work

Documented

Delayed jobs and periodic/cron insertion are available. OSS periodic schedules are held in leader memory and reset across restarts/elections; durable periodic schedules are Pro.

Uniqueness / deduplication

Documented

Unique jobs use a partial unique index and selected argument, kind, period, queue and state dimensions. Uniqueness controls insertion, not exactly-once execution.

Postgres extension required

Not required

The reviewed PostgreSQL runtime uses schema migrations and standard SQL tables/functions, rather than a dedicated queue extension.

Operator interface

Documented

River UI has an official open-source base variant; the Pro UI requires River Pro.

Tradeoffs to carry into a test