A powerful, reliable background job processing library for Clojure with pluggable message brokers and a management console.
Goose is a background job processing library for Clojure designed to handle asynchronous tasks reliably and at scale. It provides a robust solution for offloading work from the main application thread, ensuring tasks are processed even in the face of code, hardware, or network failures.
Clojure developers building applications that require reliable, scalable background job processing, such as web services, data pipelines, or scheduled task systems.
Developers choose Goose for its production-ready reliability with persisted jobs, pluggable architecture supporting RabbitMQ and Redis, and comprehensive features like a jobs management console, scheduled/cron jobs, and batch processing. It acts as a dependable sidekick to Clojure applications, emphasizing simplicity, extensibility, and scalability.
A powerful background job processing library for Clojure
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Jobs are persisted to prevent loss during code, hardware, or network failures, as emphasized in the features for handling asynchronous tasks reliably.
Native support for RabbitMQ and Redis, with extensibility for other brokers via a pluggable system, allowing integration into diverse infrastructures.
Includes a web console for monitoring, plus scheduled, cron, and batch job support, providing operational visibility and flexible task scheduling.
Offers retry logic and error handling mechanisms, ensuring robust processing even with intermittent failures, as detailed in the wiki.
The library is still in development with 1.0 rescheduled to 2026, meaning potential API changes or instability could affect long-term projects, as noted in the announcement.
Relies on external systems like RabbitMQ or Redis, adding deployment and maintenance complexity compared to simpler, in-memory job queues.
Restricted to Clojure ecosystems, which may hinder adoption in teams unfamiliar with Clojure or requiring multi-language support.