Horsies
PostgreSQL-backed background task queue and workflow engine for Python.
Full Documentation | PyPI | GitHub
Why Postgres
Every guarantee horsies makes is a Postgres primitive, not a client-side convention:
- Claiming: one server-side function under
FOR UPDATE SKIP LOCKED; a claim-generation fence rejects stale attempts, including a worker re-claiming its own requeued task. - Finalization: row lock → immutable attempt-history append → state transition, one transaction.
- Recovery: all state is rows and timestamps; the reaper reconstructs and repairs after a worker dies mid-flight — nothing in-flight exists only in a broker's memory.
- Workflows: fan-in, completion, and subworkflow cascades are multi-row transitions under a documented lock order.
- Dispatch: LISTEN/NOTIFY push — no polling.
- Inspection: history is plain tables — SQL,
EXPLAIN, your existing backups; Syce reads the same rows.
Measured hot-path latencies: performance.
Monitoring
Horsies includes Syce, a terminal-based UI for monitoring your cluster in real-time.
Testing & Correctness
3,200+ test functions across unit, real-Postgres integration, e2e
worker-process, and PgBouncer contract suites — a 2.2:1 test-to-source line
ratio, weighted toward failure paths: crash recovery, claim fencing,
cancel/completion races, rolling upgrades, and EXPLAIN ANALYZE plan
assertions pinning the hot-path statements to their indexes. The
claim/finalize semantics are additionally cross-validated against an
independent Rust reimplementation of the engine.
Pre-1.0 is an API-contract statement, not an engine-maturity statement: breaking API changes may still land in minor releases and are documented in the changelog.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file horsies-0.4.6.tar.gz.
File metadata
- Download URL: horsies-0.4.6.tar.gz
- Upload date:
- Size: 909.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2cc63fd1e063d9fd4f89f4866d8b7cb4c7e950a62983e9ffb913eead97c03eb
|
|
| MD5 |
418cba02abab0b2e96723b1fdd5da252
|
|
| BLAKE2b-256 |
86c0b35b74819706b505ca84e64300affa92e323c36f234105e0ee46b892a1ab
|
Provenance
The following attestation bundles were made for horsies-0.4.6.tar.gz:
Publisher:
release.yml on suleymanozkeskin/horsies
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
horsies-0.4.6.tar.gz -
Subject digest:
f2cc63fd1e063d9fd4f89f4866d8b7cb4c7e950a62983e9ffb913eead97c03eb - Sigstore transparency entry: 2343781118
- Sigstore integration time:
-
Permalink:
suleymanozkeskin/horsies@dd2c9f495f43ad4dc431756d6c6c41095a9e9b31 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/suleymanozkeskin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dd2c9f495f43ad4dc431756d6c6c41095a9e9b31 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file horsies-0.4.6-py3-none-any.whl.
File metadata
- Download URL: horsies-0.4.6-py3-none-any.whl
- Upload date:
- Size: 969.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bec48980808338221362ad334aac16f968a451d0dd5b855f813591d2d060398
|
|
| MD5 |
750b52e0e2436cde76f85e4af847c067
|
|
| BLAKE2b-256 |
7ce294ed4e25879056d6686b4bf018bf3000f870e435c7407ddffa0d62bb4f09
|
Provenance
The following attestation bundles were made for horsies-0.4.6-py3-none-any.whl:
Publisher:
release.yml on suleymanozkeskin/horsies
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
horsies-0.4.6-py3-none-any.whl -
Subject digest:
8bec48980808338221362ad334aac16f968a451d0dd5b855f813591d2d060398 - Sigstore transparency entry: 2343781133
- Sigstore integration time:
-
Permalink:
suleymanozkeskin/horsies@dd2c9f495f43ad4dc431756d6c6c41095a9e9b31 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/suleymanozkeskin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dd2c9f495f43ad4dc431756d6c6c41095a9e9b31 -
Trigger Event:
workflow_dispatch
-
Statement type: