awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

Lightweight Message Brokers for Background Tasks

Ranking updated Jun 30, 2026

For a simple message broker for tasks, the strongest matches are apache/incubator-pulsar (Apache Pulsar is a full-featured distributed message queue and), mqttjs/mqtt.js (A lightweight MQTT broker and client library that supports) and celery/celery (Celery is a distributed task queue that handles asynchronous). nsqio/nsq and emqx/emqx round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.

High-performance messaging systems designed for efficient task queuing and asynchronous background processing in distributed applications.

Lightweight Message Brokers for Background Tasks

Find the best repos with AI.We'll search the best matching repositories with AI.
  • apache/incubator-pulsarapache avatar

    apache/incubator-pulsar

    15,270View on GitHub↗

    Apache Pulsar is a cloud-native message queue and distributed publish-subscribe messaging system. It serves as a multi-tenant event streaming platform designed to route data streams for asynchronous communication between producers and consumers. The system distinguishes itself through geo-replication, synchronizing data across multiple geographic regions to ensure high availability and low latency. It implements a multi-tenant architecture that provides isolation and resource management for millions of independent topics. The platform covers high-throughput data streaming and event-driven da

    Apache Pulsar is a full-featured distributed message queue and pub-sub system that supports persistent storage, delayed messages, pub-sub patterns, and multiple protocols via pluggable handlers — but its cloud-native architecture and operational complexity make it far from the lightweight design you specified.

    JavaPub-Sub MessagingPublish-Subscribe Messaging
    View on GitHub↗15,270
  • mqttjs/mqtt.jsmqttjs avatar

    mqttjs/MQTT.js

    9,033View on GitHub↗

    MQTT.js is a JavaScript client library and asynchronous messaging client used to connect to message brokers and exchange data via the MQTT protocol. It provides a broker interface for publishing and subscribing to topics, and includes a command-line interface for interacting with brokers without writing code. The library supports multiple network layers, including TCP, TLS, and WebSockets, and allows for custom WebSocket construction and transport injection to handle specific headers or subprotocols. It implements bandwidth reduction through topic aliasing, which replaces repetitive topic str

    A lightweight MQTT broker and client library that supports pub-sub messaging, but it lacks built-in persistent message storage, delayed task scheduling, and support for multiple protocols beyond MQTT, which limits its suitability as a full task queue or general-purpose message broker for asynchronous background processing.

    TypeScriptPub-Sub MessagingPublish-Subscribe Messaging
    View on GitHub↗9,033
  • celery/celerycelery avatar

    celery/celery

    28,596View on GitHub↗

    Celery is an asynchronous job processor and distributed task queue designed to offload time-consuming operations to background worker nodes. By utilizing a message-passing architecture, it decouples task producers from consumers, allowing applications to maintain responsiveness while scaling workloads across multiple isolated environments. The system functions as a distributed workload orchestrator that manages the lifecycle of deferred operations through persistent queues. It distinguishes itself by providing a pluggable transport abstraction, which allows the core task logic to remain indep

    Celery is a distributed task queue that handles asynchronous background processing with support for task scheduling, persistent queues, and multiple message brokers, exactly matching your need for a lightweight job queuing system.

    PythonDistributed Task QueuesTask QueuesDistributed Task Processors
    View on GitHub↗28,596
  • nsqio/nsqnsqio avatar

    nsqio/nsq

    25,738View on GitHub↗

    NSQ is a distributed, brokerless messaging platform designed for high-throughput, fault-tolerant communication. By utilizing a decentralized topology, it eliminates single points of failure and allows for horizontal scaling across clusters. The system organizes message streams into topics and channels, effectively decoupling producers from consumers to support both streaming and job-oriented workloads. The platform distinguishes itself through a lookup-service-based discovery mechanism that enables clients to dynamically locate producers at runtime without requiring centralized coordination.

    NSQ is a distributed messaging platform that fits as a lightweight message broker with high-throughput pub/sub and decoupled producers and consumers, but it lacks built-in support for delayed/scheduled tasks and the multiple standard transport protocols you listed, making it a solid match rather than a comprehensive flagship for your specific requirements.

    GoPub-Sub MessagingPub-Sub Systems
    View on GitHub↗25,738
  • emqx/emqxemqx avatar

    emqx/emqx

    16,422View on GitHub↗

    This project is a high-performance MQTT broker and IoT data platform designed to manage millions of concurrent device connections. It provides a scalable infrastructure for ingesting, processing, and routing telemetry data across distributed systems, utilizing an actor-based concurrency model to maintain high availability and state synchronization across cluster nodes. The platform distinguishes itself through integrated stream processing and edge computing capabilities. It allows users to execute declarative SQL-based rules directly against incoming message streams for real-time filtering, t

    EMQX is a high‑performance MQTT broker for IoT, which makes it a message broker, but its focus on IoT and missing support for AMQP/STOMP and explicit delayed/scheduled tasks or worker management means it may not cover the general application job queue needs you described.

    ErlangPub-Sub Messaging
    View on GitHub↗16,422
  • rq/rqrq avatar

    rq/rq

    10,653View on GitHub↗

    rq is a distributed task queue and background worker system for Python that uses a Redis backend to decouple task submission from execution. It functions as a reliable message queue and task scheduler, allowing Python functions or asyncio coroutines to be processed asynchronously across multiple worker processes. The project distinguishes itself through reliable queuing mechanisms that prevent job loss during worker crashes using atomic operations. It provides specialized orchestration capabilities, including the prevention of duplicate jobs, job execution prioritization, and the ability to m

    rq is a lightweight task queue for Python using Redis, handling deferred tasks and background jobs with worker management, retries, and scheduling—so it fits the core need, though it uses a single Redis backend rather than supporting multiple transport protocols like AMQP, MQTT, or STOMP.

    PythonWorker Pool Management
    View on GitHub↗10,653
  • nats-io/nats-servernats-io avatar

    nats-io/nats-server

    20,076View on GitHub↗

    NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge computing, and distributed microservices. It functions as a distributed publish-subscribe broker that routes messages using hierarchical, dot-separated subject strings, enabling decoupled communication between services without requiring centralized broker lookups. The system supports core messaging patterns including asynchronous publish-subscribe, request-reply, and load-balanced queue processing. The platform distinguishes itself through a decentralized architecture that eliminates t

    NATS is a lightweight, high-performance message broker with native pub-sub, queue groups, and persistent storage via JetStream—perfect for async background processing, but it does not support AMQP, MQTT, or STOMP out of the box, which the listed features require.

    GoPublish-Subscribe MessagingPublish-Subscribe Systems
    View on GitHub↗20,076
  • bogdanp/dramatiqBogdanp avatar

    Bogdanp/dramatiq

    5,136View on GitHub↗

    Dramatiq is a distributed task queue and workload manager used to offload function execution to background workers. It functions as an asynchronous task orchestrator that enables the distribution of computational tasks across a cluster using a pluggable transport layer supporting RabbitMQ and Redis. The framework provides specialized tools for complex task orchestration, including the ability to link background jobs into sequences, pipelines, and barriers. It further manages distributed concurrency through the use of shared mutexes, rate limiters, and exponential backoff retries to prevent re

    Dramatiq is a Python task queue library that offloads function execution to background workers with pluggable transports (RabbitMQ, Redis), retry logic, and task orchestration—exactly the kind of lightweight job queuing system you want, though it delegates persistence to the broker and doesn't directly support MQTT or STOMP.

    PythonDead Letter Queues
    View on GitHub↗5,136
  • antirez/disqueantirez avatar

    antirez/disque

    8,070View on GitHub↗

    Disque is a distributed message broker that manages asynchronous communication between services through in-memory job queues. It operates as a cluster-aware job scheduler, providing at-least-once delivery guarantees with acknowledgment and retry mechanisms, and supports blocking queue consumers that efficiently wait for jobs to become available. The broker implements a job state machine that tracks each job through its lifecycle from queued to acknowledged, with configurable retry limits and time-to-live expiration to prevent unbounded queue growth. Jobs can be enqueued with delivery guarante

    Disque is a distributed message broker designed for in-memory job queuing with at-least-once delivery and retry logic, making it a genuine lightweight task queue, but it lacks persistent storage and support for standard protocols like AMQP, MQTT, or STOMP.

    CAt-Least-Once Delivery GuaranteesAcknowledgmentsAsynchronous Replication Management
    View on GitHub↗8,070
  • resque/resqueresque avatar

    resque/resque

    9,480View on GitHub↗

    Resque is a Ruby library for enqueueing and processing asynchronous tasks using Redis as a data store. It functions as a distributed task processor and queue manager, allowing long-running work to be moved out of the main request cycle. The system executes background jobs in isolated child processes to prevent memory leaks and provides a web-based dashboard for monitoring queue depths, worker activity, and failed job statistics. Capability areas include distributed worker coordination via signals, error handling with job retry mechanisms, and priority-ordered queue management. It also suppor

    Resque is a lightweight task queue for Ruby that uses Redis for persistent storage and supports delayed jobs, worker management, and retry logic, meeting the core need for asynchronous background processing, though it is limited to Redis transport and does not natively support multiple protocols or pub/sub.

    RubyAsynchronous Task ProcessingDistributed Task ProcessorsRedis-Backed Queues
    View on GitHub↗9,480
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
apache/incubator-pulsar15.3KJavaApache-2.0Jun 16, 2026
mqttjs/mqtt.js9KTypeScriptotherFeb 3, 2026
celery/celery28.6KPythonNOASSERTIONJun 16, 2026
nsqio/nsq25.7KGoMITJul 13, 2025
emqx/emqx16.4KErlangNOASSERTIONJun 23, 2026
rq/rq10.7KPythonNOASSERTIONJun 22, 2026
nats-io/nats-server20.1KGoApache-2.0Jun 23, 2026
bogdanp/dramatiq5.1KPythonlgpl-3.0Feb 17, 2026
antirez/disque8.1KCBSD-3-ClauseMar 17, 2021
resque/resque9.5KRubyMITFeb 27, 2026

Related searches

  • an async task queue for Python background jobs
  • a python library for background task processing
  • an easy pub-sub messaging system
  • a lightweight message broker for event-driven systems
  • an open source message broker for services
  • a task queue that uses Postgres
  • a message queue library for Go
  • a message queue library for PHP