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.
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.
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.
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.