River is SOC 2 Type II compliant
River has successfully completed its SOC 2 observation period and now meets all criteria for SOC 2 Type II security compliance. Enterprise rejoice!
Announcements, engineering posts, and other news from the River team. Available as an Atom feed .
River has successfully completed its SOC 2 observation period and now meets all criteria for SOC 2 Type II security compliance. Enterprise rejoice!
Ruby's long succession of async job frameworks, and tracing the Heroku API's transition from one to the next over the years.
GitHub's Dependabot can now work with private Go proxies/registries. But how do Go proxies even work? Learn how they function, how to configure them for private modules, and why ordering matters.
Building an application in Ruby on Rails that offloads its most performance and parallel-sensitive tasks to Go via River background job. Combine the concise syntax and quick iteration of Ruby with the overwhelming runtime speed of Go.
Benchmark throughput increased 15-20% with optimized queries, and major performance improvements for River Pro Sequences and Concurrency Limits. River gets a SQLite driver preview. New features for River Pro: durable periodic jobs and a database/sql driver. ✨
A look at the new job list filters and job logs in River UI, as well as many other recent River improvements.
Using encrypted jobs and NaCL Secretbox to add a layer of security protecting data even in the worst case scenario of widespread database exfiltration.
River's addition of middleware and hooks, the difference between a middleware and hook, interface oriented design, and how they set the project up for sustainable, forward compatible evolution.
River Pro now supports global concurrency limits to precisely control how many jobs can run concurrently across your infrastructure, complete with granular partitioning and operational control through River UI.
Using unique jobs in River to build an email API that takes an idempotency key so that even in the event a request needs to be retried, it never sends a duplicate email.
Using River's new OpenTelemetry package to maximize insight into production stacks.
River Pro gains a new feature: Sequences. Execute a series of jobs in a guaranteed one-at-a-time sequential order.
Using a module packaging setup derived from River Pro, River UI now ships with bundled static assets to enable easy embedding as an http.Handler.
Defining complex job graphs as workflows, the first supported feature of River Pro.
Using River's new expanded `riverdatabaseql` driver for compatibility with `database/sql` to share transactions with third party ORMs like Bun and GORM.
Python joins Ruby as River's second officially supported language supporting cross-language insertions. The riverqueue package is available on PyPI, which inserts jobs from a Python program so that they can be worked over in Go.
River UI is a self-hosted web interface for River, bringing powerful operational and development tooling to River users. It's freely available as a Docker image, a pre-built static binary, or for bundling into your own application.
How River guarantees job uniquess using transactions and advisory locks. How the FNV hash function gibes well with advisory lock keys and is built into Go.
Six months on from River's first release, we wanted to provide a few updates on progress and new features since then.
River 0.4.0's released, and it contains a few small breaking changes that've been batched together. A list of specific changes, upgrade guide, and a little rationale for why we thought they were justified.
For the past several months, I’ve been working with Brandur to build the Postgres background job library that the Go ecosystem needs: it’s called River, and we’re launching it today in beta.