riverqueue/river
The polyglot queue: Fast and reliable background jobs in Go, Ruby, Rust, and JS/TS on Postgres or SQLite.
Build with Backblaze B2
SDKs, agent skills, IDE extensions, and reference pipelines from Backblaze Labs. All open source.
Loading star history...
Where it stands
Rank, growth pace and release cadence relative to everything GStars tracks.
5 releases in the last 90 days, the latest today, with 45 contributors on GitHub.
Gained 19% fewer stars in the last 90 days than in the 90 days before.
Use Cases & Benefits
- Provides a high-performance background job processing system for Go applications using PostgreSQL as the job queue backend.
- Ensures transactional job enqueueing with application data to avoid distributed system inconsistencies and guarantees job visibility only after transaction commit.
- Use for building reliable and scalable background job processing in Go applications tightly integrated with PostgreSQL databases.
- Use for implementing scheduled, periodic, and cron jobs with support for multiple queues and job uniqueness constraints.
- Use for monitoring and managing job queues via a web UI and integrating telemetry through subscriptions to queue activity and statistics.
Should you depend on it?
License terms, project hygiene and risks, from GitHub metadata and GStars' snapshots.
License
Mozilla Public License 2.0
Weak copyleft: changes to the licensed code itself must be shared when you distribute it, but code that merely uses it can stay under your own license.
Community files
- README: present
Watch-outs
No watch-outs from GStars' checks.
General guidance from repository metadata, not legal advice. How we score
From the README
River is a robust high-performance job processing system for Go and Postgres.
See homepage, docs, and godoc, as well as the River UI and [its live demo]riveruidemo.
Being built for Postgres, River encourages the use of the same database for application data and job queue. By enqueueing jobs transactionally along with other database changes, whole classes of distributed systems problems are avoided. Jobs are guaranteed to be enqueued if their transaction commits, are removed if their transaction rolls back, and aren't visible for work until commit. See transactional enqueueing for more background on this philosophy.
Jobs are defined in struct pairs, with an implementation of [
JobArgs] and one of [Worker].Job args contain
jsonannotations and define how jobs are serialized to and from the database, along with a "kind", a stable string that uniquely identifies the job.Workers expose a
Workfunction that dictates how jobs run.
Daily snapshots
Stars gained per day, and how forks and open issues moved, from GStars' daily snapshots
Forks
194+26
Open issues
59+3
Compared with peers in Database
Fastest-growing repositories GStars tracks in this cohort for the week of Nov 1, by 7-day star growth
| Repository | Stars | +7d | Health | Last release |
|---|---|---|---|---|
| thedotmack/claude-mem | 113.6K | +8.8K | 35 | today |
| t8y2/dbx | 29.1K | +1.0K | 40 | today |
| gitroomhq/postiz-app | 41.0K | +865 | 64 | 12 days ago |
| supabase/supabase | 114.6K | +268 | 60 | 90 days ago |
| juicedata/juicefs | 14.7K | +105 | 64 | 14 days ago |
| riverqueue/river | 5.8K | — | 35 | today |
| Category median | 41.0K | +865 | 60 | — |
Discover Repositories
Search across tracked repositories by name or description