BullMQ - Elixir port of Redis based message queue and batch processing for NodeJS and Python

The popular NodeJS queue library BullMQ is now available for Elixir: Overview — BullMQ v1.0.0 It supports all the same features of the NodeJS version, but it leverages the power of Erlangs gen servers for achieving seamless concurrency and parallelism.

A powerful, fast, and robust job queue for Elixir backed by Redis. This is an Elixir port of the popular BullMQ library for Node.js, providing full compatibility with existing BullMQ queues.

Features

  • :high_voltage: High Performance - Built on Redis for speed and reliability
  • :counterclockwise_arrows_button: Automatic Retries - Configurable retry strategies with exponential backoff
  • :alarm_clock: Job Scheduling - Delay jobs or schedule them with cron expressions
  • :bar_chart: Priority Queues - Process important jobs first
  • :vertical_traffic_light: Rate Limiting - Control processing rates
  • :family_man_woman_girl_boy: Parent-Child Jobs - Create complex workflows with dependencies
  • :satellite_antenna: Real-time Events - Subscribe to job lifecycle events via Worker callbacks or QueueEvents
  • :locked: Reliable - Stalled job detection and recovery
  • :chart_increasing: Observable - Built-in Telemetry integration
  • :building_construction: OTP Native - Built with GenServers and Supervisors
  • :counterclockwise_arrows_button: Node.js Compatible - Jobs can be shared between Elixir and Node.js workers
7 Likes