A pluggable job queue and worker pool for Elixir, focused on at-least-once execution and clusterable components.
Honeydew is a job queue and worker pool library for Elixir that enables reliable background job processing with at-least-once execution guarantees. It solves the problem of managing asynchronous tasks in distributed Elixir applications by providing pluggable queues, cluster support, and failure handling without requiring external services.
Elixir developers building applications that need reliable background job processing, such as web servers handling email sends, data processing pipelines, or any system requiring task queuing in a BEAM cluster.
Developers choose Honeydew for its deep integration with Elixir and BEAM, pluggable design that avoids vendor lock-in, and strong focus on job reliability with features like at-least-once execution and configurable failure modes.
Job Queue for Elixir. Clustered or Local. Straight BEAM. Optional Ecto. 💪🍈
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 run in isolated, one-time-use processes with optional immutable state like database connections, preventing state leakage and ensuring fault tolerance, as highlighted in the Initialized Worker example.
Components operate across BEAM clusters with global queues and cluster healing, enabling distributed deployments without external dependencies, demonstrated in the global queue examples.
Users can customize queues, workers, dispatch strategies, and failure modes via modules, avoiding lock-in to external services, as detailed in the plugability documentation.
Includes multiple queue types (Mnesia, Ecto, in-memory), delayed jobs, exponential retry, and an easy API similar to Elixir's Task, covering common use cases out of the box.
Deployment requires manual Mnesia schema management in production, with steps like creating schemas while Mnesia is not running, adding operational overhead and potential for errors.
No integrated web UI or dashboard; monitoring relies on API calls like status/1 or filter/2, forcing teams to build custom solutions for real-time insights.
While pluggable, creating custom queues or workers demands deep understanding of Honeydew's architecture and BEAM concurrency, which can be daunting for less experienced developers.