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 GitHub stars and GitHub forks. Here’s a link to NSQ's open source repository on GitHub
Who uses NSQ?
30 companies reportedly use NSQ in their tech stacks, including Stripe, Tokopedia, and Segment.
103 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), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams.
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...