explaingit

nsqio/nsq

25,729GoAudience · developerComplexity · 4/5QuietLicenseSetup · hard

TLDR

A real-time distributed messaging system that lets services pass messages reliably at massive scale without talking directly to each other.

Mindmap

mindmap
  root((NSQ))
    What it does
      Real-time messaging
      Decentralized design
      Billions of messages daily
    How it works
      Services send messages
      Other services receive
      No direct connection needed
    Use cases
      Process user events
      Send notifications
      Distribute work
    Tech stack
      Go language
      Command-line config
      Docker support
    Deployment
      Linux, Darwin, FreeBSD
      Windows compatible
      No runtime dependencies

Things people build with this

USE CASE 1

Process user events asynchronously across multiple backend services without them needing to know about each other.

USE CASE 2

Send notifications, emails, or alerts reliably by queuing them and having worker services consume them at their own pace.

USE CASE 3

Distribute heavy computational work across many servers by having one service publish tasks and others pick them up in parallel.

Tech stack

GoDocker

Getting it running

Difficulty · hard Time to first run · 1h+

Distributed system requires Docker Compose setup with multiple services (broker, workers, persistence layer) and understanding of message queue concepts.

Mozilla Public License 2.0, use freely for any purpose, including commercial, as long as you disclose source code changes and include the license notice.

In plain English

NSQ is a real-time distributed messaging platform, a system that lets different parts of a software application pass messages to each other reliably, even at massive scale. Think of it like a high-speed postal system inside your infrastructure: one service drops a message in, and one or more other services pick it up and act on it, all without the sender and receiver needing to talk to each other directly. It is designed to handle billions of messages per day and is built around a decentralized model, meaning there is no single server that everything depends on, so if one part fails, the rest keeps running. Messages can be in any format (JSON, binary, or anything else), and NSQ provides official client libraries for Go and Python, with many others available. It is easy to deploy because all configuration is done via command-line flags with no extra runtime dependencies. It runs on Linux, Darwin, FreeBSD, and Windows, and also has an official Docker image. You would use NSQ when building a large-scale backend system where different services need to communicate asynchronously, for example, processing user events, sending notifications, or distributing work across many servers. The tech stack is Go.

Copy-paste prompts

Prompt 1
Show me how to set up NSQ locally and send a test message from one service to another using the Go client.
Prompt 2
I need to process 10 million user signup events per day and trigger different workflows based on event type. How would I use NSQ for this?
Prompt 3
Walk me through deploying NSQ in Docker and configuring multiple consumer services to handle the same message queue.
Prompt 4
How do I ensure messages aren't lost if a consumer crashes while processing? What are NSQ's guarantees?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.