License & Deployment Mix: 18 tools – 10 OSS, 4 SaaS. (OSS and SaaS counts can overlap when an open-source tool also offers a vendor-hosted edition.)

What Is Message Queue / Event Streaming Software?

Message queue and event streaming software provides asynchronous communication between distributed systems, services, and applications. Instead of direct service-to-service calls, a message broker or streaming platform acts as an intermediary – decoupling producers from consumers and enabling reliable, scalable data exchange.

These systems fall into two broad architectural patterns:

Message Queues (Traditional Brokers)

Message queues deliver messages from producers to consumers using point-to-point or publish/subscribe patterns. Once a consumer acknowledges a message, it is removed from the queue. Key characteristics:

  • Point-to-point – one producer, one consumer per message; work distribution across workers
  • Pub/sub – one producer, many consumers; each subscriber gets a copy of the message
  • Delivery guarantees – at-most-once, at-least-once, or exactly-once semantics
  • Message acknowledgment – consumers confirm receipt; unacknowledged messages are redelivered
  • Dead letter queues – failed messages routed to a separate queue for inspection
  • Priority queues – messages processed in priority order rather than FIFO
  • Protocols – AMQP 0-9-1, AMQP 1.0, MQTT, STOMP, OpenWire, JMS

Event Streaming (Log-Based)

Event streaming platforms treat events as an immutable, append-only log. Consumers read from the log at their own pace without removing events. Key characteristics:

  • Append-only log – events are immutable and retained for a configurable period (or forever)
  • Consumer offsets – each consumer tracks its position in the log independently
  • Replay – consumers can rewind and reprocess historical events
  • Partitioning – topics are split into partitions for parallel processing
  • Compaction – log compaction retains only the latest value per key
  • Stream processing – built-in or integrated stream processing engines (KStreams, Flink, etc.)

Hybrid Systems

Many modern systems blur the line between queues and streaming. NATS JetStream, RabbitMQ Streams, and Apache Pulsar support both patterns. Redis Streams provides log-based semantics within a general-purpose data store.

The information on these pages was researched by a combination of human review and large language models. To suggest an addition or correction, please contact us. Prepared by Rhodium Systems Inc., author of the ResorsIT platform — a unified IT operations management platform for IT teams and MSPs that integrates a curated suite of open-source, commercial, and SaaS applications into a single system with shared identity, single sign-on, access control, and a common audit trail. Use this catalogue only as a starting point for your own research, and review any tool carefully against your own requirements before relying on it. Catalogue data version 2026.197.

Comparison


Feature Matrix

Open Source

FeatureKafkaRabbitMQNATSPulsarRedis Streams
Pub/SubYesYesYesYesYes*
QueuingCGYesJSYesCG
StreamingYesStreamsJSYesYes
PersistenceYesYesJSYesRDB/AOF
Exactly-onceYesNoJSYesNo
OrderingPart.QueueSubj.Part.ID
ReplayYesNo**JSYesYes
Schema reg.Ext.NoNoBuilt-inNo
Dead letterNo***YesNoYesNo
PriorityNoYesNoNoNo
TransactionsYesNoNoYesNo
Multi-tenantNoVHostAcct.YesNo

CG = via consumer groups JS = via JetStream Part. = per-partition ordering Subj. = per-subject ordering ID = per-stream ID ordering Ext. = external (Confluent Schema Registry) * = Pub/Sub is a separate Redis feature ** = RabbitMQ Streams support replay *** = application-level via error topics

FeatureZeroMQMosquittoActiveMQNSQRedpanda
Pub/SubYesYesYesYesYes
QueuingPush/PullNo*YesYesCG
StreamingNoNoNoNoYes
PersistenceNoQoS 1/2YesDiskYes
Exactly-onceNoQoS 2**TxnNoYes
OrderingNoTopicQueueNoPart.
ReplayNoNoNoNoYes
Schema reg.NoNoNoNoBuilt-in
Dead letterNoNoYesNoNo***
PriorityNoNoYesNoNo
TransactionsNoNoYesNoYes
Multi-tenantNoNoNoNoNo

* = MQTT shared subscriptions provide basic work distribution ** = QoS 2 is per-message exactly-once, not transactional *** = application-level via error topics CG = via consumer groups (Kafka-compatible) Part. = per-partition ordering Txn = via JMS transactions

Commercial / Managed

FeatureConfluentSQS/SNSService BusPub/SubSolace
Pub/SubYesSNSYesYesYes
QueuingCGSQSYesSub.Yes
StreamingYesNoNoSeekYes
PersistenceYesYesYesYesYes
Exactly-onceYesFIFOSessionsPullTxn
OrderingPart.FIFO*SessionsKeyTopic
ReplayYesNoNoSeekYes
Schema reg.YesNoNoYesNo
Dead letterNo**YesYesYesYes
PriorityNoNoNoNoYes
TransactionsYesNoYesNoYes
Multi-tenantNoIAMNamespaceIAMVPN

CG = via consumer groups Sub. = via subscriptions (each gets all messages) Part. = per-partition ordering FIFO* = FIFO queues only (3,000 msg/sec limit) ** = application-level via error topics Txn = XA and local transactions VPN = Message VPN isolation


Protocol Support

ToolAMQPMQTTKafkaSTOMPHTTPgRPCJMS
KafkaNoNoYesNoProxyNoNo
RabbitMQYesYesNoYesYesNoNo
NATSNoYesNoNoNoNoNo
PulsarAoPMoPKoPNoYesNoNo
Redis StreamsNoNoNoNoNoNoNo
ZeroMQNoNoNoNoNoNoNo
MosquittoNoYesNoNoNoNoNo
ActiveMQYesYesNoYesYesNoYes
NSQNoNoNoNoYesNoNo
RedpandaNoNoYesNoYesNoNo
ConfluentNoNoYesNoYesNoNo
SQS/SNSNoNoNoNoYesNoNo
Service BusYesNoNoNoYesNoYes
Pub/SubNoNoNoNoYesYesNo
SolaceYesYesNoNoYesNoYes

AoP = AMQP on Pulsar (compatibility layer) MoP = MQTT on Pulsar (compatibility layer) KoP = Kafka on Pulsar (compatibility layer) Proxy = via Confluent REST Proxy or equivalent


Deployment Comparison

ToolTypeLanguageSelf-HostManagedMin Nodes
KafkaStreamingJavaYesYes3
RabbitMQBrokerErlangYesYes3
NATSMessagingGoYesYes3*
PulsarStreamingJavaYesYes6**
Redis StreamsData storeCYesYes3***
ZeroMQLibraryC++N/ANoN/A
MosquittoMQTTCYesNo1
ActiveMQBrokerJavaYesYes2
NSQQueueGoYesNo3****
RedpandaStreamingC++YesYes3
ConfluentStreamingJavaYesYes3
SQS/SNSQueue/PubNoAWS
Service BusBrokerNoAzure
Pub/SubStreamingNoGCP
SolaceBrokerC/C++YesYes2

* = 3 for JetStream; 1 for core NATS ** = 3 ZK + 3 BK/broker minimum *** = 3 for Redis Cluster/Sentinel **** = 2+ nsqlookupd + 1+ nsqd -- = fully managed; not applicable


Licensing Comparison

ToolLicenseTypeCost
KafkaApache 2.0Open sourceFree
RabbitMQMPL-2.0Open sourceFree
NATSApache 2.0Open sourceFree
PulsarApache 2.0Open sourceFree
Redis StreamsRSALv2/SSPLv1/AGPLSource-availFree
ZeroMQMPL-2.0Open sourceFree
MosquittoEPL-2.0Open sourceFree
ActiveMQApache 2.0Open sourceFree
NSQMITOpen sourceFree
RedpandaBSL 1.1Source-availFree*
ConfluentProprietaryCommercial$$$$
SQS/SNSProprietaryCloud SaaSPay-per-use
Service BusProprietaryCloud SaaSPay-per-use
Pub/SubProprietaryCloud SaaSPay-per-use
SolaceProprietaryCommercialFree**

* = BSL converts to Apache 2.0 after 4 years ** = Standard Edition free (limited); Enterprise and Cloud are commercial


SSO / OIDC Comparison

OIDC is the preferred SSO protocol.

ToolOIDCSAMLLDAPAuthentik Notes
KafkaOB*NoJAASOAUTHBEARER for clients; UI tools support OIDC
RabbitMQYesNoYesOAuth2 auth backend for UI and clients
NATSNoNoNoJWT/NKey auth; no OIDC integration
PulsarYesNoYesOAuth 2.0 for clients and Pulsar Manager
Redis StreamsNoNoNoData store; OIDC not applicable
ZeroMQNoNoNoLibrary; OIDC not applicable
MosquittoNoNoNoJWT plugin; reverse proxy for mgmt
ActiveMQExt*NoYesHawtio OIDC via Keycloak adapter
NSQNoNoNoReverse proxy for nsqadmin
RedpandaYesNoEnt.Console OIDC; OAUTHBEARER for clients
ConfluentYesYesYesCloud console SSO; Platform MDS
SQS/SNSIAMIAMADAWS IAM Identity Center SSO
Service BusEntraEntraADEntra ID federation
Pub/SubGCIGCISyncCloud Identity federation
SolaceYesYesYesCloud console + broker OAuth 2.0

OB* = SASL/OAUTHBEARER mechanism Ext* = via Hawtio Keycloak adapter IAM = via AWS IAM Identity Center Entra = via Microsoft Entra ID GCI = via Google Cloud Identity Ent. = Enterprise edition only AD = Active Directory / managed AD

Best SSO support: RabbitMQ, Pulsar, Redpanda Console, Confluent Cloud, and Solace have the most complete OIDC/OAuth 2.0 support for both management UI and client connections.


Throughput & Latency (Approximate)

These are approximate ranges based on published benchmarks. Actual performance depends heavily on hardware, configuration, message size, replication factor, and workload pattern.

ToolThroughput (msg/sec)p99 Latency
Kafka1M+5–15 ms
Redpanda1M+1–5 ms
NATS (core)10M+<1 ms
NATS (JetStream)500K+1–5 ms
Pulsar1M+5–20 ms
RabbitMQ (classic)50K–100K1–5 ms
RabbitMQ (quorum)30K–80K2–10 ms
Redis Streams500K+<1 ms
ZeroMQ10M+<0.1 ms
Mosquitto100K+<1 ms
ActiveMQ (Artemis)100K–300K1–10 ms
NSQ100K–500K1–5 ms
SQS StandardUnlimited*5–20 ms
SQS FIFO3K (batch)10–50 ms
Service BusVaries**5–50 ms
Pub/SubUnlimited*10–50 ms
Solace1M+***<1 ms***

* = auto-scaling; no published limit ** = depends on tier (Basic/Standard/Premium) *** = hardware appliance; software broker lower


Tools

18 tools.

Amazon SQS / SNS

Amazon SQS (Simple Queue Service) and Amazon SNS (Simple Notification Service) are AWS’s core messaging services. SQS provides fully managed message queues; SNS provides fully managed pub/sub notification.

License: Proprietary (proprietary) · Kind: web · Deploy: saas, native · SSO: OIDC

Website

Apache ActiveMQ

Apache ActiveMQ is an open-source enterprise message broker and JMS reference implementation, available as mature Classic (5.x) and next-generation Artemis variants with AMQP, MQTT, and STOMP support.

License: Apache-2.0 (OSS) · Kind: web · Deploy: native, docker · SSO: none

Website · Source

Apache Iggy

Apache Iggy is a persistent message-streaming platform written in Rust – a from-scratch, Kafka-class alternative with streams/topics/partitions, consumer groups, and QUIC/TCP/HTTP/WebSocket transports.

License: Apache-2.0 (OSS) · Kind: web · Deploy: native, docker · SSO: none

Website · Source

Apache Kafka

Apache Kafka is the dominant event streaming platform, originally developed at LinkedIn and open-sourced in 2011.

License: Apache-2.0 (OSS) · Kind: web · Deploy: native, docker · SSO: none

Website · Source

Apache Pulsar

Apache Pulsar is a distributed messaging and streaming platform originally developed at Yahoo and open-sourced in 2016. It became an Apache top-level project in 2018.

License: Apache-2.0 (OSS) · Kind: web · Deploy: native, docker · SSO: none

Website · Source

Azure Service Bus

Azure Service Bus is Microsoft’s fully managed enterprise message broker supporting both message queuing and pub/sub patterns.

License: Proprietary (proprietary) · Kind: web · Deploy: saas, native, k8s · SSO: OIDC

Website

Confluent Cloud

Confluent Cloud is the fully managed Kafka service from Confluent, the company founded by the original creators of Apache Kafka.

License: Proprietary (proprietary) · Kind: web · Deploy: saas · SSO: OIDC, SAML

Website

Eclipse Mosquitto

Eclipse Mosquitto is a lightweight, open-source MQTT message broker implementing MQTT protocol versions 5.0, 3.1.1, and 3.1. It is the reference implementation of the MQTT protocol and part of the Eclipse Foundation’s IoT ecosystem.

License: EPL-2.0 (OSS) · Kind: web · Deploy: native, docker · SSO: none

Website · Source

EMQX

EMQX is the world’s most scalable open-source MQTT broker, designed for IoT and real-time messaging at massive scale.

License: Apache-2.0 (OSS) · Kind: web · Deploy: native, docker · SSO: none

Website · Source

Google Cloud Pub/Sub

Google Cloud Pub/Sub is a fully managed, globally distributed messaging and event streaming service.

License: Proprietary (proprietary) · Kind: web · Deploy: saas, native · SSO: SAML

Website

IBM MQ

IBM MQ is an enterprise message-oriented middleware (MOM) platform that has been in continuous production since 1993 (originally MQSeries).

License: Proprietary (proprietary) · Kind: web · Deploy: native, docker · SSO: none

Website

NATS

NATS is a lightweight, high-performance messaging system designed for cloud-native and edge computing environments.

License: Apache-2.0 (OSS) · Kind: web · Deploy: native, docker · SSO: none

Website · Source

NSQ

NSQ is a realtime distributed messaging platform built at Bitly and open-sourced in 2012. It is designed for simplicity, operational ease, and fault tolerance.

License: MIT (OSS) · Kind: web · Deploy: native, docker · SSO: none

Website · Source

RabbitMQ

RabbitMQ is the most widely deployed open-source message broker, implementing AMQP 0-9-1 as its primary protocol.

License: MPL-2.0 (OSS) · Kind: web · Deploy: native, docker · SSO: none

Website · Source

Redis Streams

Redis Streams is a log-based data structure built into Redis (since Redis 5.0) that provides event streaming capabilities within the Redis ecosystem.

License: LicenseRef-Redis-RSALv2 (source-available) · Kind: web · Deploy: native, docker · SSO: none

Website

Redpanda

Redpanda is a Kafka-compatible event streaming platform written in C++ using the Seastar framework. It is designed as a drop-in replacement for Apache Kafka with significantly lower latency, simpler operations, and no JVM dependency.

License: LicenseRef-Redpanda-RCL (source-available) · Kind: web · Deploy: native, docker · SSO: none

Website

Solace PubSub+

Solace PubSub+ is an enterprise event broker that supports multiple messaging protocols and patterns in a single platform.

License: Proprietary (proprietary) · Kind: web · Deploy: native, docker · SSO: none

Website

ZeroMQ

ZeroMQ (also written as 0MQ or ZMQ) is a high-performance asynchronous messaging library rather than a standalone message broker.

License: MPL-2.0 (OSS) · Kind: web · Deploy: package · SSO: none

Website · Source

ResorsIT Tools Catalog Search