Skip to content

Install

rdq ships in a few pieces — pick the ones you need. Everything shares one wire envelope and one storage backend, so you can mix and match (submit from the SDK, execute via the server, inspect from the CLI).

  • Go 1.22+ — for the Go SDK and building from source.
  • PostgreSQL 14+ — the v1 reference storage backend.
  • Docker — for running rdq-server from the published image.
  • Java 17+ / Maven — for the Java SDK.
Terminal window
go get github.com/srjn45/rdq/sdk-go

The worker package is github.com/srjn45/rdq/sdk-go; a submit-only sub-package (github.com/srjn45/rdq/sdk-go/submit) lets producer-side apps enqueue work without pulling in the worker. You’ll also want a storage plugin:

Terminal window
go get github.com/srjn45/rdq/storage/postgres

Apply the migrations once at startup:

db, _ := postgres.Open("postgres://user:pass@localhost/mydb")
if err := postgres.Migrate(ctx, db); err != nil { /* ... */ }
store := postgres.New(db)

Continue in the Go SDK guide.

The engine is split into a submit-only client and the worker (so apps can “submit here, execute there”):

<!-- Producer side: submit tasks only -->
<dependency>
<groupId>io.github.srjn45</groupId>
<artifactId>rdq-java-client</artifactId>
<version>2.1.0</version>
</dependency>
<!-- Worker side: the embedded engine (depends on the client) -->
<dependency>
<groupId>io.github.srjn45</groupId>
<artifactId>rdq-java-worker</artifactId>
<version>2.1.0</version>
</dependency>

Continue in the Java SDK guide.

Run the central retry hub against storage you already operate:

Terminal window
docker run -e RDQ_DSN=postgres://user:pass@host/db \
-p 8080:8080 ghcr.io/srjn45/rdq-server:latest

It exposes REST and gRPC intake plus DLQ and admin APIs. Because it’s stateless, run as many replicas as you like behind a load balancer — coordination happens entirely in storage. See the rdq-server guide and the Server API reference.

A Helm chart ships alongside the image for Kubernetes deployments; see the configuration reference for the full environment surface.

The rdq CLI is a single Go binary for queue stats, DLQ browse/inspect, and redrive:

Terminal window
go install github.com/srjn45/rdq/cli/cmd/rdq@latest

Point it at your storage (or at an rdq-server) and start inspecting:

Terminal window
rdq dlq list --queue payments.charge

Continue in the CLI guide.

Once storage is reachable, the fastest end-to-end check is the Quickstart: submit a task, run a worker, watch it succeed after a retry — or land in the DLQ and get redriven.