NSQ logo

NSQ

A realtime distributed messaging platform
117
258
+ 1
143

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.
NSQ is a tool in the Message Queue category of a tech stack.
NSQ is an open source tool with 20K GitHub stars and 2.6K GitHub forks. Here’s a link to NSQ's open source repository on GitHub

Who uses NSQ?

Companies
26 companies reportedly use NSQ in their tech stacks, including Stripe, Tokopedia, and Segment.

Developers
87 developers on StackShare have stated that they use NSQ.
Pros of NSQ
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
Free
1
Topics and channels concept
1
Load balanced
1
Primarily in-memory

NSQ's Features

  • support distributed topologies with no SPOF
  • horizontally scalable (no brokers, seamlessly add more nodes to the cluster)
  • low-latency push based message delivery (performance)
  • combination load-balanced and multicast style message routing
  • excel at both streaming (high-throughput) and job oriented (low-throughput) workloads
  • primarily in-memory (beyond a high-water mark messages are transparently kept on disk)
  • runtime discovery service for consumers to find producers (nsqlookupd)
  • transport layer security (TLS)
  • data format agnostic
  • few dependencies (easy to deploy) and a sane, bounded, default configuration
  • simple TCP protocol supporting client libraries in any language
  • HTTP interface for stats, admin actions, and producers (no client library needed to publish)
  • integrates with statsd for realtime instrumentation
  • robust cluster administration interface (nsqadmin)

NSQ Alternatives & Comparisons

What are some alternatives to NSQ?
RabbitMQ
RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.
Kafka
Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design.
Redis
Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
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.
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...
See all alternatives

NSQ's Followers
258 developers follow NSQ to keep up with related blogs and decisions.