riverqueue

    riverqueue/river

    The polyglot queue: Fast and reliable background jobs in Go, Ruby, Rust, and JS/TS on Postgres or SQLite.

    database
    background-jobs
    go
    golang
    javascript
    postgres
    Go
    MPL-2.0
    5.8K stars
    194 forks
    5.8K GitHub watchers
    Updated Oct 27, 2026
    View on GitHub

    Build with Backblaze B2

    SDKs, agent skills, IDE extensions, and reference pipelines from Backblaze Labs. All open source.

    Explore Backblaze Labs

    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 json annotations 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 Work function that dictates how jobs run.

    Excerpt from the riverqueue/river README on GitHub (MPL-2.0 license). © its authors.Read the full README on GitHub

    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

    riverqueue/river compared with Database repositories by stars, 7-day star growth, health score and last release
    RepositoryStars+7dHealthLast release
    thedotmack/claude-mem113.6K+8.8K35today
    t8y2/dbx29.1K+1.0K40today
    gitroomhq/postiz-app41.0K+8656412 days ago
    supabase/supabase114.6K+2686090 days ago
    juicedata/juicefs14.7K+1056414 days ago
    riverqueue/river5.8K—35today
    Category median41.0K+86560—

    Discover Repositories

    Search across tracked repositories by name or description