Available for Go Ruby, Rust, and TypeScript coming soon

Build features faster
with River Pro.

Extend River with durable workflows, concurrency limits, sequences, and more. No new services, with commercial support from the people who make it.

Paper-craft illustration of a riverside rice wharf in the morning: white storehouses, stacked straw bales, crates and barrels, and a loaded boat at the dock

Divide and conquer

Durable workflows in your own database

Break a complex process into small tasks that run in parallel, retry on their own, and pick up where they left off after a crash or deploy. Tasks can wait for whatever they need before they run: a person's approval, a webhook from another system, a deadline, or the result of an earlier step. Implement billing runs, AI agents, and order fulfillment as durable workflows, without adding new services.

Customer Resolution · Case 234840

ID: 2akn7musktuf36dmjiw2g6t7ts

PlanExecution plan_execution CallTool lookup_customer CallTool search_docs CallTool fetch_orders CallTool check_refund_policy DraftResponse compose_draft AssessRefund assess_refund VerifyDraft verify_draft Waiting for approval Approved by support lead IssueRefund issue_refund SendResponse send_response
Fan out, fan in
Run tasks in parallel across many machines and continue once all of them finish.
Retries per task
A failed task retries on its own, without redoing the work already completed.
Wait for people and events
Pause a task until a person approves, a webhook arrives, or a deadline passes.
Transactional consistency
Ship faster using your primary database. Avoid cross-datastore distributed systems headaches.
Self-hosted and reliable
No new external dependencies—just use your existing database.
Visible in River UI
Watch each task's state live in River UI, and retry or cancel right from the diagram.

Concurrency limits

Fine-grained control

Globally limit concurrent jobs with granular partitioning. Scale your workloads with precision and confidence.

Learn more →

Sequences

Ordered execution

Run sequences of jobs in strict order, each running independently in parallel.

Learn more →

More in River Pro

Batching
Run many similar jobs at once.
Dead letter queue
Retain discarded jobs for extended periods, but in a separate table where they won't interfere with live operations.
Durable periodic jobs
Periodic jobs with next run times persisted to the database for robust, predictable scheduling, even on crashes or restarts.
Encrypted jobs
Keep sensitive data encrypted in the database for enhanced security.
Ephemeral jobs
Set high frequency jobs to not be retained to maximize operational stability.
Per-queue job retention
Configure the retention period of cancelled, completed, and discarded jobs on a per-queue basis.

Pricing

Pricing plans for teams of all sizes

River Pro is available with monthly or annual subscriptions.

River is open-source software and always will be. With your subscription, you are ensuring the sustainable maintenance and development of River.

Open Source

Enterprise

  • Everything in Pro
  • Email and Slack support
  • Invoice/PO billing
  • Unlimited developers
  • SOC 2 report

Feature comparison

Core features

Feature Tier Tier Tier
Reliable background jobs
Yes Yes Yes
Intuitive web UI
Yes Yes Yes
Multiple queues
Yes Yes Yes
Periodic jobs
Yes Yes Yes
Unique jobs Yes Yes Yes

Pro features

Feature Tier Tier Tier
Workflows
No Yes Yes
Batching
No Yes Yes
Sequences
No Yes Yes
Concurrency limits
No Yes Yes
Dead letter queue
No Yes Yes
Durable periodic jobs
No Yes Yes
Encrypted jobs
No Yes Yes
Ephemeral jobs No Yes Yes

Miscellaneous

Feature Tier Tier Tier
Purchasing
Credit card Credit card, Invoice/PO
Email support
Yes Yes
Slack support
No Yes
Access to SOC 2 report
No Yes
Developer seats Up to 20 Unlimited

Already a customer? Sign in.