For an open source message broker for services, the strongest matches are apache/incubator-pulsar (Apache Pulsar is a cloud-native message queue and event), apache/pulsar (Apache Pulsar is a cloud-native distributed pub-sub messaging and) and apache/kafka (Apache Kafka is a battle-tested distributed event streaming platform). apache/incubator-rocketmq and apache/rocketmq round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
We curate open-source GitHub repositories matching “open-source message queue and event bus for decoupling services”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
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 cloud-native message queue and event streaming platform that unifies pub/sub messaging and point-to-point queues with persistent storage, stream replay, clustering, and multi-language client libraries, directly meeting the need for asynchronous microservice communication.
Apache Pulsar is a cloud-native distributed pub-sub messaging system designed for high-performance data ingestion. It functions as a geo-replicated data streamer and a multi-tenant event streaming platform, providing a serverless stream processing engine and a tiered storage messaging broker. The system distinguishes itself by separating serving layers from storage layers to allow independent scaling of compute and data retention. It features native geo-replication to synchronize messages across different geographical regions and employs a multi-layered tenant isolation model using authentica
Apache Pulsar is a cloud-native distributed pub-sub messaging and event streaming platform that provides both message queuing (point-to-point) and streaming (pub/sub with replay), along with persistence, geo-replication, multi-language clients, and serverless processing—exactly matching the need to decouple microservices with reliable, scalable middleware.
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
Apache Kafka is a battle-tested distributed event streaming platform with a partitioned commit log that provides durable message persistence, pub/sub and queue-like consumer-group semantics, clustering, replication, multi-language client libraries, and consumer offset management for stream replay, exactly the middleware this query asks for.
RocketMQ is a distributed messaging and streaming platform designed for building event-driven applications. It serves as middleware to decouple services using publish-subscribe and request-reply patterns, and functions as a transactional messaging system that ensures atomicity by linking message delivery to local transaction outcomes. The platform includes specialized capabilities as a Kubernetes-native message broker for container orchestration environments and an MQTT broker for ingesting event data from mobile applications and hardware terminals. The system covers high-throughput data str
Apache RocketMQ is a distributed messaging and streaming platform that natively supports both point-to-point queues and pub/sub messaging with persistence, clustering, filtering, and offset management, making it a strong fit for decoupling microservices with the full set of features you need.
RocketMQ is a cloud-native distributed messaging platform and streaming engine. It functions as a distributed transactional queue that ensures atomicity between local transactions and message delivery, and serves as an MQTT IoT message broker to bridge lightweight device traffic into high-performance data streams. The system is distinguished by a Kubernetes-native architecture that decouples compute from storage to allow independent scaling of traffic and data retention. It utilizes a tiered storage model to offload older data to remote storage and employs quorum-based replication and automat
Apache RocketMQ is a cloud-native distributed messaging and streaming engine that combines pub/sub and point-to-point queues with tiered storage, quorum-based replication, and polyglot client support, directly addressing the need for a message broker with event streaming in microservices.
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 Server with its built-in JetStream layer delivers both pub/sub messaging and persistent event streaming with replay, clustering, and multi-language support, directly matching your need for a combined message queue and event streaming middleware.
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 with pub/sub messaging, clustering, persistence, and integrated stream processing using SQL rules, which fits the need for a distributed message broker/event streaming platform, though its focus on IoT protocols and less conventional point-to-point queues makes it a narrower fit.
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 provides both pub/sub topics and point-to-point channels for decoupling microservices, supporting high-throughput, fault-tolerant asynchronous communication; while it covers many required features like clustering and multi-language clients, it lacks explicit stream replay and offset management found in some event streaming platforms.
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
This is a Windows-native port of Redis, which provides pub/sub messaging and stream-based event streaming with consumer groups and offset management, but it lacks persistent pub/sub, built-in at-least-once delivery for queues, and sophisticated routing—making it a functional but incomplete fit for a full-featured distributed message broker.
Redis is an in-memory, key-value database designed to provide sub-millisecond latency for read and write operations. It functions as a versatile data platform, serving as a distributed cache, a message broker, a NoSQL document store, and a vector database. The system utilizes an event-driven, single-threaded loop to process requests efficiently, while maintaining data durability through append-only persistence logs and asynchronous snapshotting mechanisms. What distinguishes Redis is its ability to handle complex data structures—including strings, hashes, lists, sets, and sorted sets—alongsid
Redis is a versatile in-memory data store that natively supports pub/sub messaging, list-based queues, and Redis Streams for event streaming with persistence, clustering, and offset management—making it a capable distributed message broker and streaming platform for decoupling microservices.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| apache/incubator-pulsar | 15.3K | Java | Apache-2.0 | |
| apache/pulsar | 15.3K | Java | Apache-2.0 | |
| apache/kafka | 32.8K | Java | Apache-2.0 | |
| apache/incubator-rocketmq | 22.5K | Java | Apache-2.0 | |
| apache/rocketmq | 22.5K | Java | Apache-2.0 | |
| nats-io/nats-server | 20.1K | Go | Apache-2.0 | |
| emqx/emqx | 16.4K | Erlang | NOASSERTION | |
| nsqio/nsq | 25.7K | Go | MIT | |
| tporadowski/redis | 10K | C | other | |
| redis/redis | 74.9K | C | NOASSERTION |