Skip to content

NSQ

A realtime messaging system that passes messages between programs, built to run across many machines.

Stars
25.8k
Forks
2.9k
Licence
MIT
Language
Go
Last update
3 months ago
Type
Other

What it is

NSQ is a messaging platform: one part of a system sends messages and another part receives them, without the two needing to connect directly. The README says it is designed to handle very large volumes of messages and to avoid single points of failure by spreading work across distributed nodes. It is written in Go, and its binaries are described as having no runtime dependencies, with all settings passed on the command line.

  • Pass events such as user actions or job requests from one service to several consumers
  • Buffer messages so a slow processing service does not block the service that produces them
  • Run a distributed messaging layer across several servers using the official Docker image or binary releases

Great for

  • Teams running backend services that need to pass many messages between components in real time
  • Engineers who want a self-hosted queue without relying on a hosted cloud service
  • Go or Python developers who want ready-made client libraries
  • Operators who prefer simple command-line configuration over large config files

Not ideal for

  • Small projects with light messaging needs, where a simpler queue or database table would be enough (the README describes a platform built for scale)
  • Anyone who needs a fully managed service with no operations work, since the README covers self-deployment only
  • People who need the latest stable code, because the README warns that master is a development branch and may not be stable
Step-by-step guide: how to use NSQInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Download the app

    Clone the repository

    git clone https://github.com/nsqio/nsq
  2. 2

    Run it

    • Download a binary release for your platform from the releases page or use the official Docker image, as the README describes
    • Follow the installation guide at https://nsq.io/deployment/installing.html
    • Start the NSQ components with their command-line parameters, per the documentation
    • Connect a client library (Go and Python are official) to send and receive a test message
  3. 3

    Get the most out of it

    • Use the official Docker image for containerized deployment, per the README
    • Read the features and guarantees page to understand delivery behavior before relying on it
    • Use one of the many client libraries listed on the NSQ site if you are not using Go or Python
    • Pin to a tagged release rather than master for production use

Downloads

Strengths

  • The README claims it is designed to scale to billions of messages per day and lists production users such as Bitly and Stripe
  • Binaries have no runtime dependencies and all parameters are set on the command line, which keeps deployment simple
  • Data format agnostic: messages can be JSON, MsgPack, Protocol Buffers, or anything else

Trade-offs

  • The README does not detail the delivery guarantees here; it refers to a separate features page, so the exact behavior needs checking there
  • master may be unstable, so production users should pin to a tagged release
  • Operating a distributed system takes real operational skill even if setup is simple

How it compares

ProjectStarsTypeLevelUpdatedBest for
nsq (this)25.8kOtherintermediate3 months agoTeams running backend services that need to pass many messages between components in real time
temporal24.1kDev toolintermediate4 days agoBackend developers building multi-step processes that must finish reliably
rqlite17.9kAppintermediate4 days agoDevelopers who want a replicated SQL database without running a large database server
orleans10.9kLibraryintermediate4 days agoC# and .NET developers building scalable backend services
petals10.7kLibraryintermediate2.2 years agoDevelopers who want to experiment with large open models like Llama 3.1 or BLOOM without owning the hardware to run them alone

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.