Run transactional Go and Postgres agent job queues with River
Use River to keep Go-based agent jobs transactional with Postgres so queued work commits or rolls back with the application state that created it.
npx skills add agentskillexchange/skills --skill run-transactional-go-postgres-agent-job-queues-with-river
JobArgs and Worker implementations, register workers with river.NewWorkers() and river.AddWorker, start a river.Client with a Postgres driver and queue config, then enqueue jobs inside application transactions where consistency matters.Use River when a Go agent service needs a durable background job queue that shares Postgres with application state. The operator defines typed job arguments and workers, registers workers at startup, configures queues and concurrency, and enqueues agent work such as follow-up processing, report generation, webhook delivery, data refreshes, or evaluation batches transactionally with the database changes that require them.
What this skill actually does
Invoke this instead of using the product as a normal Go library when the operational goal is to keep agent side effects reliable: no orphaned jobs after rollbacks, no invisible work before commit, graceful shutdown, retries, and inspectable queue behavior. The scope boundary is transactional Go/Postgres background work for agent workflows in River. It is not a general Go framework, Postgres tutorial, or all-purpose queue comparison.
Inputs and prerequisites: Go application, PostgreSQL, River Go modules, pgx-compatible database pool, optional River UI.
Setup notes: Add River to the Go service, create typed JobArgs and Worker implementations, register workers with river.NewWorkers() and river.AddWorker , start a river.Client with a Postgres driver and queue config, then enqueue jobs inside application transactions where consistency matters.
Source and verification boundary: use https://riverqueue.com as the canonical reference before running the workflow; keep commands, API calls, CLI usage, and generated outputs reviewable against that upstream source.
Framework fit: publish this as a Custom Agents workflow only when the operator can invoke the documented toolchain directly, rather than treating the upstream project as a generic product listing.