Published July 2023
Both RabbitMQ and Apache Pulsar are popular options for distributed systems and messaging architectures.
The two open source technologies can handle high-throughput message traffic and ensure reliable communication between various apps and other components of complex data systems.
RabbitMQ for Simplicity, Pulsar for Complex Use Cases
Both Pulsar and RabbitMQ bridge two traditional messaging technologies: shared message queue and publish-subscribe. In the shared message queue model individual messages are sent to the queue by a producer and read only once by a single consumer. In the publish-subscribe model, the senders (publishers) and receivers (subscribers) of messages are decoupled. Subscribers receive messages only from the topics to which they are explicitly subscribed.
We have a post describing how these two messaging models work together specifically for Apache Kafka. The concept is the same for RabbitMQ and Pulsar.
RabbitMQ is focused on simplicity. And for many use cases simplicity is the right fit because with a simpler architecture comes greater reliability.
Pulsar strives for flexibility and modularity. Pulsar supports multi-topic publish-subscribe, fan-out, and geo-replication. Its modular architecture allows for independent scaling of the serving (Pulsar) and storage (BookKeeper) layers.
The drawback to modular architecture is the increased complexity. When running Pulsar, we must also install Pulsar Broker, BookKeeper, and ZooKeeper. Pulsar may also require additional testing and can be more buggy the more a use case deviates from average.
Pulsar Faster for High Throughput
Another important, distinguishing difference is speed. RabbitMQ offers the fastest speed at the lowest throughputs, while Pulsar is significantly faster as throughput increases.
Here is a link to Confluent’s benchmarking test results for Kafka vs Pulsar vs RabbitMQ. Be careful with benchmarking tests though as results can be biased depending on how the test is run. This article in DZone discusses how test results can be misleading. That said, we can still use benchmarking tests to observe large differences and trends in how different technologies handle low and high throughput scenarios.
Community & Plugins
RabbitMQ has a large community and there are countless articles and resources. It is available for Java, client libraries, .NET, Ruby, node.js, and has dozens of associated plugins.
Pulsar is newer and not used as broadly. It also has incomplete documentation. Companies using Pulsar will often reach out for Pulsar consulting and/or managed Pulsar from a company that is experienced with running and optimizing Pulsar for a variety of use cases.
Dattell’s engineers have a depth of experience architecting and managing Pulsar for our clients that span industries, use cases, and geography. Reach out for more information.
Apache Pulsar Support Services
If you are interested in 24/7 support, consulting, and/or fully managed Pulsar services, you can find more information on our Apache Pulsar services page.
Schedule a call with a Pulsar solution architect.