Lightweight message brokers and pub-sub platforms designed for easy deployment and minimal operational overhead.
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 data pipelines. Its capabilities include maintaining message ordering, managing multi-tenant access, and offloading cold data to tiered storage. System administration and resource provisioning are handled via a programmatic REST API.
Apache Pulsar is a robust, distributed pub-sub messaging system that provides high-throughput event streaming and multi-tenancy, though its complex architecture makes it less lightweight than simpler alternatives for basic asynchronous communication.
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. To ensure reliability, it implements an explicit acknowledgement protocol that guarantees at-least-once message delivery, automatically re-queuing unhandled data. The system also manages memory usage by spilling message queues to disk when thresholds are exceeded, preventing service crashes during periods of high load. Beyond its core messaging capabilities, the project provides a comprehensive suite of administrative tools, including built-in HTTP endpoints for monitoring cluster health and managing configuration. It supports flexible deployment patterns, ranging from containerized environments to direct binary execution, and offers official client libraries alongside a documented TCP-based binary protocol for custom integrations. The software is available as pre-compiled binaries or source code, with documentation covering cluster administration, performance benchmarking, and operational configuration.
NSQ is a distributed, high-throughput message broker that provides native pub-sub capabilities, disk-backed persistence, and a decentralized clustering model that is well-suited for lightweight, scalable deployments.
ntfy is a self-hosted messaging infrastructure that provides a lightweight platform for sending and receiving real-time notifications. It functions as a topic-based pub-sub server, allowing users to publish and subscribe to message channels using standard HTTP requests. By bridging server-side events with native mobile and desktop clients, it enables the delivery of alerts across various environments through a unified communication layer. The project distinguishes itself by offering a complete, private notification ecosystem that includes persistent message caching and robust access control. It supports the UnifiedPush protocol, acting as a gateway to native mobile operating system push services, which allows for decentralized notification delivery without reliance on proprietary cloud providers. Users can interact with the system through a command-line interface, webhooks, or persistent streaming connections like Server-Sent Events and WebSockets. The platform covers a broad range of operational capabilities, including automated system monitoring, workflow integration, and cross-platform event broadcasting. It supports advanced message features such as content templating, file attachments, interactive buttons, and priority-based delivery. The system is designed for flexible deployment, offering containerized and binary-based installation options that simplify integration into existing infrastructure. The software is distributed as a single static binary, facilitating straightforward deployment across Linux, macOS, and Windows environments.
ntfy is a lightweight, self-hosted pub-sub server that uses simple HTTP requests for messaging, making it an effective tool for asynchronous notifications and event broadcasting between services.
Mosquitto is a message broker that implements the MQTT protocol to route messages between connected devices and applications. It functions as a central hub for event-driven communication, supporting message exchange over both raw TCP and WebSockets. The software provides a persistent messaging infrastructure by writing message queues and client subscription states to disk, ensuring data recovery following service interruptions. The broker distinguishes itself through its support for distributed system synchronization, allowing for the federation of multiple remote brokers to share data across geographic boundaries. It includes a comprehensive security framework that enforces transport layer security for encrypted communication and provides granular access control through topic-based restrictions. Administrators can manage security policies, including authentication and access roles, dynamically at runtime without interrupting active client connections. The system offers extensive extensibility through a plugin-based authentication architecture, enabling integration with external databases or custom identity verification services. It also provides command-line utilities for programmatic interaction with the broker, allowing for real-time message publishing, subscription, and automated security configuration management.
Mosquitto is a lightweight, highly efficient message broker that natively supports pub-sub messaging, persistent storage, and distributed federation, making it an ideal choice for asynchronous communication between services.
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 the need for centralized user databases or complex service discovery. It utilizes cryptographically signed JSON Web Tokens for identity and permission management, and maintains a self-healing mesh network through gossip-based cluster discovery. For isolated or edge environments, the server supports leaf-node proxying, which tunnels traffic through persistent connections to bridge local and remote namespaces. Beyond basic messaging, the system provides a robust capability surface for distributed state and data management. This includes log-structured stream persistence for reliable message replay and durable delivery, as well as an integrated, atomic key-value store for managing configuration and state across services. The architecture enforces multi-tenant isolation by segregating traffic into independent accounts, each with granular access control policies that govern cross-account data sharing and service interaction. The server is designed for flexible deployment, ranging from single-process instances embedded within applications to globally distributed superclusters spanning multiple cloud providers. It provides comprehensive observability through real-time metrics, event tracing, and integration with standard monitoring tools.
NATS Server is a high-performance, lightweight message broker that natively supports pub-sub, request-reply, persistence, and clustering, making it an ideal solution for distributed service communication.
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, transformation, and routing. Furthermore, it functions as an industrial connectivity hub and edge gateway, enabling local data processing, inference, and protocol bridging to normalize data from heterogeneous devices before it reaches cloud or enterprise systems. Beyond core messaging, the platform encompasses a broad suite of operational tools including multi-tenant resource isolation, comprehensive security controls, and durable message delivery. It supports complex data lifecycles through persistent queues, schema validation, and direct integration with various storage backends for long-term archiving and time-series analysis. The system provides a unified interface for global infrastructure monitoring and automated fleet orchestration. It is designed for flexible deployment across on-premise, cloud, and serverless environments, offering command-line tools to manage configuration, scaling, and system health.
This is a high-performance MQTT broker that provides robust pub-sub messaging, clustering, and persistence, though its heavy focus on IoT-specific protocols and edge computing makes it more specialized than a general-purpose message broker.
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 strings with numeric identifiers. The project covers connection management through automatic reconnection, keepalive heartbeats, and credential refreshing. It manages message reliability using pluggable in-flight storage for unacknowledged messages and ensures secure data transfer via TLS encryption with SNI and ALPN extensions. Messaging capabilities include batched subscription requests and topic name validation.
This repository is a client library for interacting with MQTT brokers rather than a standalone message broker itself, making it a building block for your messaging architecture rather than the broker you would deploy.
Centrifugo is a self-hosted real-time messaging server that provides infrastructure for scalable notifications, a publish-subscribe message broker, and a language-agnostic WebSocket gateway. It allows for the delivery of instant messages and data streams to concurrent users via WebSockets and Server-Sent Events. The system functions as a communication layer that separates network transport from backend business logic. It supports distributed messaging clusters using Redis for coordination of presence and message delivery across multiple server nodes. The project covers channel subscription management, user presence tracking, and message recovery mechanisms to handle data loss during network disconnects. Security and operational capabilities include token-based connection authentication, proxy-based subscription validation, automated TLS certification, and connection rate limiting. Administration is supported through a server management command-line interface, and the project is distributed as Docker container images for consistent deployment.
Centrifugo is a self-hosted, container-ready real-time messaging server that provides robust pub-sub capabilities and clustering support, making it a strong choice for asynchronous communication between distributed services.
K3s is a lightweight Kubernetes distribution designed for resource-constrained environments, edge computing, and simplified deployment across diverse hardware architectures. It functions as a container orchestration engine that automates the deployment, scaling, and management of containerized applications. By bundling all necessary control plane components and dependencies into a single binary, it minimizes the system footprint and streamlines the installation process. The project distinguishes itself through a flexible architecture that supports both high-availability clustering and minimal, single-node setups. It provides options for using an embedded SQLite datastore for small deployments or external databases for larger, resilient environments. Security is integrated into the core, featuring token-based node authentication, encrypted communication between nodes, and support for mandatory access control policies like SELinux. The platform covers a broad operational surface, including automated cluster version upgrades, manifest-based resource deployment, and integrated Helm chart management. It offers extensive configuration capabilities for networking, certificate management, and storage backends, allowing administrators to tailor the environment to specific infrastructure requirements. The system is designed to maintain consistent operational standards across distributed locations, ensuring that management remains centralized even when hardware resources are limited.
This is a lightweight Kubernetes distribution for container orchestration, not a message broker or pub-sub system for asynchronous service communication.
Redigo is a Redis client library for Go applications, providing the means to execute commands, manage connections, and interact with Redis data stores. The library includes a connection pool manager to maintain a cache of reusable open connections and a pipelining tool that groups multiple commands into a single network round-trip to increase throughput and reduce latency. It also provides an implementation for broadcasting events and receiving real-time messages through Redis communication channels. The project covers broader capability areas including remote scripting for executing logic on the server, the management of database connection lifecycles, and the execution of the full Redis command set.
This is a client library for interacting with a Redis server rather than a message broker itself, meaning you would use it to build or connect to a system rather than deploying the broker.
redis-py is a Python client library for executing Redis commands and managing in-memory data structures. It provides the necessary components to integrate Python applications with Redis for data storage and retrieval. The project includes a cluster client for monitoring health and managing automatic failover across multiple active-active database replicas. It also features a connection pool manager to maintain reusable socket connections and a dedicated pub/sub client for subscribing to real-time message channels. The library covers broad capability areas including performance optimization through command pipelining and optimized response parsing, as well as high-availability traffic management for multi-database failover. It also supports search and indexing via query dialect configuration.
This is a client library for interacting with Redis rather than a message broker itself, meaning you would use this to connect your application to a broker rather than deploying it as the broker infrastructure.
Redis is a high-performance in-memory key-value store that functions as a distributed cache, message broker, and NoSQL database. It provides sub-millisecond read and write access to data stored in RAM and can operate as a vector database for indexing high-dimensional embeddings. The system supports a wide range of data storage and synchronization primitives, including the management of strings, hashes, lists, sets, and JSON documents. It enables real-time data operations through atomic transactions, hybrid persistence using snapshots and append-only logs, and high-availability configurations such as automated failover and geographic data distribution. Capabilities extend to asynchronous messaging via publish-subscribe frameworks and event streams with consumer group coordination. The platform also includes advanced search and indexing for full-text, geospatial, and vector similarity queries, as well as tools for AI memory management and machine learning feature serving. The software can be deployed natively on Windows as a process or service, or within containerized environments like Kubernetes.
Redis is a high-performance, lightweight in-memory store that natively supports pub-sub messaging, persistence, and clustering, making it a widely used tool for asynchronous communication between services.
Olric is a distributed data grid and in-memory key-value store that partitions and replicates data across a cluster of servers. It serves as a shared memory system for managing distributed maps, performing atomic operations, and acting as an in-memory data cache. The system provides a distributed locking mechanism for concurrency control and a pub-sub messaging system that broadcasts and routes messages over named channels across the cluster. The platform covers wide-ranging capabilities including cluster management and orchestration, data replication with configurable quorums, and automated memory eviction using time-to-live policies. It also includes tools for monitoring cluster health, auditing data distribution, and password-based client authentication. Olric can be deployed as a standalone independent service, as a container, or integrated directly into an application as an embedded library.
While this project includes pub-sub capabilities, it is primarily a distributed key-value store and data grid rather than a dedicated message broker designed for asynchronous service communication.
Kafka is a distributed event streaming platform designed for capturing, storing, and processing real-time data streams across interconnected nodes. It functions as a distributed commit log, providing a fault-tolerant storage mechanism that records state changes sequentially to ensure data consistency and durability across distributed environments. The platform distinguishes itself through a partitioned commit log architecture that enables horizontal scaling and parallel processing of data streams. It integrates a stream processing engine for continuous transformations and aggregations, while utilizing log-structured, append-only storage to maintain high-throughput sequential disk operations. Independent consumer groups manage their own read positions, and an asynchronous replication protocol ensures high availability by allowing follower nodes to pull data without blocking primary write paths. Beyond core streaming, the system supports event-driven microservices, log aggregation, and archiving. It employs zero-copy network transfers to minimize overhead and provides a pluggable storage engine interface to accommodate various hardware configurations. Comprehensive documentation and API references are available to support integration and system management.
Kafka is a robust, industry-standard distributed event streaming platform that functions as a high-throughput message broker, though its complex architecture and operational requirements make it less lightweight than some alternatives.