{"repo":"velveteer/arbiter","free":true,"listed":false,"github":"https://github.com/velveteer/arbiter","clone":"git clone https://github.com/velveteer/arbiter.git","description":"Haskell + PostgreSQL Distributed Job Queue","language":"Haskell","stars":26,"topics":["haskell","job-queue","postgresql","task-queue"],"license":"MIT","category":"databases-storage","readme_excerpt":"Arbiter An opinionated, production-ready PostgreSQL job queue for Haskell applications. - Transactional job processing - jobs and database operations commit together - At-least-once delivery with visibility timeouts and heartbeats - Per-group ordering (partitioned FIFO) - Concurrent worker pools with LISTEN/NOTIFY wakeups and polling fallback - Dead-letter queues - Opt-in archiving of completed jobs with per-job retention - Job trees with fan-out/fan-in result collection - Cron/periodic job scheduling - Job deduplication via unique keys - Cross-queue per-job rate limiting with operator-tunable token-bucket policies - Cross-queue per-job concurrency limits - at most N jobs sharing a key in flight - OpenTelemetry traces built in, metrics and logs via arbiter-otel - Observability callbacks, structured logging - REST API with SSE and an embedded admin UI - File-based liveness probes for Kubernetes / systemd - Extensive test coverage (1,000+ integration tests) [!NOTE] The API is subject to breaking changes. A Hackage release following PVP is tentative. Installation Install directly from GitHub: Cabal - add to your cabal.project : Stack - add to your stack.yaml : Replace arbiter-simple with arbiter-orville or arbiter-hasql depending on your backend. Quick Start Payload and Result Types Define payload types with ToJSON and FromJSON instances. A queue whose handlers produce a result needs the same instances on the result type. Type-Level Registry Map queue table names to payload type","default_branch":null,"files":null,"tree":[],"storefront":"/r/velveteer","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/velveteer/arbiter/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}