River is a robust high-performance job processing system for Go and Postgres.
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.
You might be interested in:
- riverqueue.com, the central landing page for the product.
- River's main repository, containing the Go project that directs how jobs are worked.
- River's documentation, containing detailed usage information and examples.
- River UI (and live demo), a self-hosted graphical interface for queue management.