The project is in a healthy, maintained state
Ruby SDK for Workhorse, a durable task queue whose state lives in PostgreSQL
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

>= 1.3.1, < 2
>= 2.5, < 4
>= 1.6, < 2
>= 1.6, < 2
 Project Readme

Workhorse

A durable task queue for PostgreSQL, with TypeScript, Python, Go, Rust, Ruby, Java, and Kotlin workers on one SQL protocol.

Workhorse is versioned SQL functions inside the database you already run. Every language gets the same workers, the same durable waits, and the same dashboard, with no broker or server beside PostgreSQL.

Public beta: Workhorse is usable for evaluation and early production adoption. A 0.x minor release may change behaviour, so read the changelog before you upgrade. It will not ask you to recreate your database: migrations are ordered, and inside a major line a migration only adds, so a running deployment upgrades in place.

Build status

Documentation · Quickstart · Live demo · Compatibility · Security policy · For AI agents

Why Workhorse

Applications often need a database change and a background task to succeed together. Workhorse enqueues through the same PostgreSQL transaction, so a rollback cannot leave one without the other.

PostgreSQL owns queue state, scheduling, retries, recovery, and immutable history. Workers claim tasks with fence tokens, so a worker that resumes after losing its lease cannot overwrite newer work.

Handlers receive at-least-once delivery. Workhorse records durable progress and outcomes, but external effects still need stable provider idempotency keys or compensation.

One protocol for your workers and your dashboard

See it operate

The dashboard exposes task activity, lifecycle events, system health, worker capacity, queues, and schedules without making the queue's PostgreSQL tables part of your operator interface.

Workhorse dashboard task activity chart and task table

Open the live demo to explore the dashboard, including recurring schedules and task details.

When it fits

Choose Workhorse when your application already depends on PostgreSQL and needs durable background work that can share application transactions. Choose a dedicated broker when queue scale or availability must be independent from the application database.

Learn and operate

  • Guides explain enqueue, workers, retries, durable execution, and integrations.
  • API reference documents the public TypeScript surface.
  • Architecture defines exact protocol behavior and invariants.
  • Feature matrix separates supported, partial, and unsupported behavior.
  • Compatibility defines supported runtimes, schema policy, and releases.
  • Operations covers health, retention, and maintenance.
  • Dashboard explains the operator UI and deployment boundary.
  • Changelog records releases and required schema versions.

Contributing

Read CONTRIBUTING.md before sending a change, sign the contributor agreement, and use the development commands defined in package.json.

License

Workhorse is available under the Apache License, Version 2.0. Attribution lives in NOTICE.