{"repo":"yudhasubki/blockqueue","free":true,"listed":false,"github":"https://github.com/yudhasubki/blockqueue","clone":"git clone https://github.com/yudhasubki/blockqueue.git","description":"Cost-effective Job Queue with Pub/Sub. Embeddable in Go applications, or runnable as a standalone HTTP service. Supports SQLite, Turso, and PostgreSQL.","language":"Go","stars":88,"topics":["background-jobs","go","message-broker","message-queue","queue","sqlite3","libsql","libsqlite3","postgresql"],"license":"Apache-2.0","category":"databases-storage","readme_excerpt":"BlockQueue A durable, embeddable fan-out queue for Go, backed by SQLite or PostgreSQL. BlockQueue stores one canonical message and creates one independently leased delivery for every subscriber. Use it as an imported Go package or run the optional HTTP service for cross-language clients. Why BlockQueue: - SQLite first: embed a durable queue without operating another service. - PostgreSQL scale-out: coordinate claims and schedules across processes. - Real fan-out: every subscriber owns independent retry and completion state. - Transactional APIs: commit application rows with publish or completion. - HTTP included: expose the same queue model to non-Go applications. Turso/libSQL support is experimental. Delivery is at least once; handlers must be idempotent unless their database side effect and completion share one transaction. Install The standalone server is optional: Quick start This complete example creates one topic, publishes durably, claims the subscriber delivery, and ACKs the exact lease that was returned: Publish waits for the canonical message and complete subscriber fan-out to commit. Use PublishAsync only when process-local admission is sufficient. Managed Go workers The worker package handles claim loops, bounded concurrency, heartbeats, panic recovery, retry, batched completion, and graceful drain: Run several topic/subscriber workers under one lifecycle with worker.Group : Each worker keeps its own concurrency limit. A terminal error from one worker cancels and ","default_branch":null,"files":null,"tree":[],"storefront":"/r/yudhasubki","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/yudhasubki/blockqueue/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."}