Need advice about which tool to choose?Ask the StackShare community!

NATS

265
413
+ 1
53
NSQ

125
307
+ 1
143
Add tool

NATS vs NSQ: What are the differences?

Developers describe NATS as "Lightweight publish-subscribe & distributed queueing messaging system". Unlike traditional enterprise messaging systems, NATS has an always-on dial tone that does whatever it takes to remain available. This forms a great base for building modern, reliable, and scalable cloud and distributed systems. On the other hand, NSQ is detailed as "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.

NATS belongs to "Realtime Backend / API" category of the tech stack, while NSQ can be primarily classified under "Message Queue".

"Fastest pub-sub system out there" is the top reason why over 13 developers like NATS, while over 23 developers mention "It's in golang" as the leading cause for choosing NSQ.

NSQ is an open source tool with 15.6K GitHub stars and 2.03K GitHub forks. Here's a link to NSQ's open source repository on GitHub.

Apcera, Workiva, and Bridgevine are some of the popular companies that use NATS, whereas NSQ is used by Stripe, Docker, and Segment. NATS has a broader approval, being mentioned in 26 company stacks & 12 developers stacks; compared to NSQ, which is listed in 21 company stacks and 8 developer stacks.

Advice on NATS and NSQ
Pramod Nikam
Co Founder at Usability Designs · | 2 upvotes · 321.6K views
Needs advice
on
Apache ThriftApache ThriftKafkaKafka
and
NSQNSQ

I am looking into IoT World Solution where we have MQTT Broker. This MQTT Broker Sits in one of the Data Center. We are doing a lot of Alert and Alarm related processing on that Data, Currently, we are looking into Solution which can do distributed persistence of log/alert primarily on remote Disk.

Our primary need is to use lightweight where operational complexity and maintenance costs can be significantly reduced. We want to do it on-premise so we are not considering cloud solutions.

We looked into the following alternatives:

Apache Kafka - Great choice but operation and maintenance wise very complex. Rabbit MQ - High availability is the issue, Apache Pulsar - Operational Complexity. NATS - Absence of persistence. Akka Streams - Big learning curve and operational streams.

So we are looking into a lightweight library that can do distributed persistence preferably with publisher and subscriber model. Preferable on JVM stack.

See more
Replies (1)
Naresh Kancharla
Staff Engineer at Nutanix · | 4 upvotes · 318.9K views
Recommends
KafkaKafka

Kafka is best fit here. Below are the advantages with Kafka ACLs (Security), Schema (protobuf), Scale, Consumer driven and No single point of failure.

Operational complexity is manageable with open source monitoring tools.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of NATS
Pros of NSQ
  • 21
    Fastest pub-sub system out there
  • 15
    Rock solid
  • 10
    Easy to grasp
  • 3
    Light-weight
  • 3
    Easy, Fast, Secure
  • 1
    Robust Security Model
  • 29
    It's in golang
  • 20
    Lightweight
  • 19
    Distributed
  • 18
    Easy setup
  • 16
    High throughput
  • 10
    Publish-Subscribe
  • 7
    Save data if no subscribers are found
  • 7
    Scalable
  • 6
    Open source
  • 5
    Temporarily kept on disk
  • 2
    Simple-to use
  • 1
    Load balanced
  • 1
    Free
  • 1
    Primarily in-memory
  • 1
    Topics and channels concept

Sign up to add or upvote prosMake informed product decisions

Cons of NATS
Cons of NSQ
  • 1
    No Order
  • 1
    Persistence with Jetstream supported
  • 1
    No Persistence
  • 1
    Get NSQ behavior out of Kafka but not inverse
  • 1
    Long term persistence
  • 1
    HA

Sign up to add or upvote consMake informed product decisions

What is NATS?

Unlike traditional enterprise messaging systems, NATS has an always-on dial tone that does whatever it takes to remain available. This forms a great base for building modern, reliable, and scalable cloud and distributed systems.

What is NSQ?

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.

Need advice about which tool to choose?Ask the StackShare community!

What companies use NATS?
What companies use NSQ?
See which teams inside your own company are using NATS or NSQ.
Sign up for StackShare EnterpriseLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with NATS?
What tools integrate with NSQ?
    No integrations found
    What are some alternatives to NATS and NSQ?
    Kafka
    Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design.
    gRPC
    gRPC is a modern open source high performance RPC framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking...
    MQTT
    It was designed as an extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium.
    RabbitMQ
    RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.
    Mosquitto
    It is lightweight and is suitable for use on all devices from low power single board computers to full servers.. The MQTT protocol provides a lightweight method of carrying out messaging using a publish/subscribe model. This makes it suitable for Internet of Things messaging such as with low power sensors or mobile devices such as phones, embedded computers or microcontrollers.
    See all alternatives