NSQ vs Apache Pulsar: What are the differences?
What is NSQ? A realtime distributed messaging platform. NSQ is a realtime distributed messaging platform designed to operate at scale, handling billions of messages per day. It promotes distributed and decentralized topologies without single points of failure, enabling fault tolerance and high availability coupled with a reliable message delivery guarantee. See features & guarantees.
What is Apache Pulsar? Distributed solution providing messaging and queuing for streaming data. Apache Pulsar is a distributed messaging solution developed and released to open source at Yahoo. Pulsar supports both pub-sub messaging and queuing in a platform designed for performance, scalability, and ease of development and operation.
NSQ and Apache Pulsar can be primarily classified as "Message Queue" tools.
Some of the features offered by NSQ are:
- support distributed topologies with no SPOF
- horizontally scalable (no brokers, seamlessly add more nodes to the cluster)
- low-latency push based message delivery (performance)
On the other hand, Apache Pulsar provides the following key features:
- Unified model supporting pub-sub messaging and queuing
- Easy scalability to millions of topics
- Native multi-datacenter replication
"It's in golang" is the primary reason why developers consider NSQ over the competitors, whereas "Simple" was stated as the key factor in picking Apache Pulsar.
NSQ and Apache Pulsar are both open source tools. It seems that NSQ with 18.1K GitHub stars and 2.39K forks on GitHub has more adoption than Apache Pulsar with 6.24K GitHub stars and 1.51K GitHub forks.
Stripe, Tokopedia, and Segment are some of the popular companies that use NSQ, whereas Apache Pulsar is used by MercadoLibre, Patients Know Best, and Zaihui. NSQ has a broader approval, being mentioned in 24 company stacks & 78 developers stacks; compared to Apache Pulsar, which is listed in 3 company stacks and 43 developer stacks.