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?
26 companies reportedly use NSQ in their tech stacks, including Stripe, Tokopedia, and Segment.
87 developers on StackShare have stated that they use NSQ.
Pros of NSQ
It's in golang
Save data if no subscribers are found
Temporarily kept on disk
Topics and channels concept
- 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?
See all alternatives
RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.
Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design.
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.
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 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...