awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
nsqio avatar

nsqio/nsq

0
View on GitHub↗
25,738 stars·2,892 forks·Go·MIT·17 viewsnsq.io↗

Nsq

NSQ is a distributed, brokerless messaging platform designed for high-throughput, fault-tolerant communication. By utilizing a decentralized topology, it eliminates single points of failure and allows for horizontal scaling across clusters. The system organizes message streams into topics and channels, effectively decoupling producers from consumers to support both streaming and job-oriented workloads.

The platform distinguishes itself through a lookup-service-based discovery mechanism that enables clients to dynamically locate producers at runtime without requiring centralized coordination. To ensure reliability, it implements an explicit acknowledgement protocol that guarantees at-least-once message delivery, automatically re-queuing unhandled data. The system also manages memory usage by spilling message queues to disk when thresholds are exceeded, preventing service crashes during periods of high load.

Beyond its core messaging capabilities, the project provides a comprehensive suite of administrative tools, including built-in HTTP endpoints for monitoring cluster health and managing configuration. It supports flexible deployment patterns, ranging from containerized environments to direct binary execution, and offers official client libraries alongside a documented TCP-based binary protocol for custom integrations.

The software is available as pre-compiled binaries or source code, with documentation covering cluster administration, performance benchmarking, and operational configuration.

Features

  • Distributed Systems - Supports deployment of horizontally scalable, brokerless messaging clusters for streaming and job workloads.
  • Message Brokers - Acts as a high-throughput, fault-tolerant platform for decentralized message communication.
  • Distributed Messaging - Builds fault-tolerant message queuing systems using decentralized node discovery.
  • Connection Management Strategies - Maintain persistent network connections to message instances using automatic reconnection logic and exponential backoff strategies to ensure stable communication during intermittent network failures.
  • Message Delivery Guarantees - Ensures at-least-once message delivery through explicit consumer acknowledgments and automatic re-queuing.
  • Message Queue Clients - Provides configurable consumer clients for managing topic subscriptions and reliable message processing.
  • Distributed Architectures - Operates using a decentralized, brokerless topology to eliminate single points of failure.
  • Fault Tolerance - Eliminates single points of failure through decentralized directory services and direct client-to-producer connections.
  • Scalability Tools - Enables horizontal expansion of messaging infrastructure using built-in discovery mechanisms.
  • Message Middleware - Ensures reliable at-least-once delivery through explicit acknowledgments and automatic re-queuing.
  • Message Stream Handlers - Process asynchronous message streams by managing heartbeats, multiplexing data frames, and executing lifecycle commands like finishing, requeuing, or touching messages to maintain stream integrity.
  • Messaging Clients - Provides official client libraries and a documented TCP protocol for integrating messaging into applications.
  • Pub-Sub Systems - Organizes message streams into topics and channels to decouple producers from consumers.
  • Service Discovery - Provides dynamic lookup of cluster producers to adapt to infrastructure changes at runtime.
  • Caching and Messaging - Real-time distributed message processing platform.
  • Data Pipelines - Realtime distributed messaging platform for scale.
  • Message Queues - Real-time distributed messaging platform.
  • Message Queuing - Real-time distributed messaging platform.
  • Messaging and RPC - A real-time distributed messaging platform.
  • Messaging Systems - Real-time distributed messaging platform.
  • Service Governance and Platforms - Real-time distributed messaging platform for high-throughput tasks.
  • Communication Protocols - Requires explicit success or failure signals from consumers to ensure reliable message delivery.
  • Directory Services - Uses a central directory service to allow clients to dynamically locate producers at runtime.
  • Messaging Architectures - Enables scalable, asynchronous data exchange through a decoupled topic-based architecture.
  • Pub-Sub Messaging - Organizes message streams using auto-created topics and channels to decouple producers from consumers.
  • Task Queues - Handles background jobs and event-driven workflows with reliable at-least-once delivery guarantees.
  • System Monitoring - Check daemon status using HTTP endpoints for automated health probes and inspect real-time statistics through command-line tools or administrative web interfaces.
  • Messaging Infrastructure - Provides administrative interfaces and health monitoring for containerized messaging services.
  • Service Configuration - Set up message buffering, disk persistence, lookup discovery, and reporting metrics for the primary message daemon using command-line parameters during service startup.
  • Service Orchestration Configurations - Coordinate multiple messaging services using configuration files to define dependencies, network settings, and port mappings for automated and repeatable deployment across environments.
  • Flow Control Mechanisms - Control message flow by dynamically adjusting readiness states and implementing exponential backoff strategies to pause or resume processing during periods of high load or transient errors.
  • Resource Management - Limits memory usage by buffering messages to disk when queue thresholds are exceeded.
  • Cluster Administration - Manages message clusters through a web interface with performance visualization.
  • Monitoring Interfaces - Exposes cluster metrics and configuration controls through built-in HTTP administrative endpoints.
  • Data Buffering - Spills message queues to disk when memory thresholds are exceeded to prevent service crashes.
  • Deployment Utilities - Supports deployment of messaging services via self-contained binaries with built-in administrative interfaces.
  • Service Registries - Provides a decentralized lookup mechanism for clients to locate and connect to active producers.
  • Binary Protocols - Implements a custom binary protocol over persistent TCP connections for efficient data multiplexing.
  • Connection Handshake Protocols - Exchange configuration details like buffer sizes, TLS settings, and heartbeat intervals using a structured JSON payload during the initial connection handshake to optimize data transfer.
  • Message Discovery Services - Locate available message producers by polling lookup services and maintaining a current list of active connections to ensure seamless communication with message instances.
  • Reliability Patterns - Implements logic to manage message duplicates and ordering in distributed, non-replicated architectures.

Star history

Star history chart for nsqio/nsqStar history chart for nsqio/nsq

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Nsq

Similar open-source projects, ranked by how many features they share with Nsq.
  • nats-io/nats-servernats-io avatar

    nats-io/nats-server

    20,076View on GitHub↗

    NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge computing, and distributed microservices. It functions as a distributed publish-subscribe broker that routes messages using hierarchical, dot-separated subject strings, enabling decoupled communication between services without requiring centralized broker lookups. The system supports core messaging patterns including asynchronous publish-subscribe, request-reply, and load-balanced queue processing. The platform distinguishes itself through a decentralized architecture that eliminates t

    Gocloudcloud-computingcloud-native
    View on GitHub↗20,076
  • tporadowski/redistporadowski avatar

    tporadowski/redis

    9,987View on GitHub↗

    Redis is a high-performance in-memory key-value store that functions as a distributed cache, message broker, and NoSQL database. It provides sub-millisecond read and write access to data stored in RAM and can operate as a vector database for indexing high-dimensional embeddings. The system supports a wide range of data storage and synchronization primitives, including the management of strings, hashes, lists, sets, and JSON documents. It enables real-time data operations through atomic transactions, hybrid persistence using snapshots and append-only logs, and high-availability configurations

    Credisredis-for-windowsredis-msi-installer
    View on GitHub↗9,987
  • emqx/emqxemqx avatar

    emqx/emqx

    16,422View on GitHub↗

    This project is a high-performance MQTT broker and IoT data platform designed to manage millions of concurrent device connections. It provides a scalable infrastructure for ingesting, processing, and routing telemetry data across distributed systems, utilizing an actor-based concurrency model to maintain high availability and state synchronization across cluster nodes. The platform distinguishes itself through integrated stream processing and edge computing capabilities. It allows users to execute declarative SQL-based rules directly against incoming message streams for real-time filtering, t

    Erlangaiotbrokercoap
    View on GitHub↗16,422
  • nats-io/nats.gonats-io avatar

    nats-io/nats.go

    6,657View on GitHub↗

    This is a Golang client library for interacting with a cloud native distributed messaging system. It provides the necessary tools for Go applications to exchange messages using publish-subscribe and request-reply patterns, as well as specialized clients for managing persistent streams and distributed storage. The library includes a JetStream client for durable message streaming and replay, a Key-Value store client for managing distributed state with versioning and watchers, and an Object Store client for the storage and retrieval of large binary files via chunked delivery. The implementation

    Gocloud-nativecloud-native-architecturescloud-native-microservices
    View on GitHub↗6,657
See all 30 alternatives to Nsq→

Frequently asked questions

What does nsqio/nsq do?

NSQ is a distributed, brokerless messaging platform designed for high-throughput, fault-tolerant communication. By utilizing a decentralized topology, it eliminates single points of failure and allows for horizontal scaling across clusters. The system organizes message streams into topics and channels, effectively decoupling producers from consumers to support both streaming and job-oriented workloads.

What are the main features of nsqio/nsq?

The main features of nsqio/nsq are: Distributed Systems, Message Brokers, Distributed Messaging, Connection Management Strategies, Message Delivery Guarantees, Message Queue Clients, Distributed Architectures, Fault Tolerance.

What are some open-source alternatives to nsqio/nsq?

Open-source alternatives to nsqio/nsq include: nats-io/nats-server — NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge… tporadowski/redis — Redis is a high-performance in-memory key-value store that functions as a distributed cache, message broker, and NoSQL… emqx/emqx — This project is a high-performance MQTT broker and IoT data platform designed to manage millions of concurrent device… nats-io/nats.go — This is a Golang client library for interacting with a cloud native distributed messaging system. It provides the… redisson/redisson — Redisson is a Java library and Redis client that functions as a distributed Java object mapper, caching provider, and… shopify/sarama — Sarama is a Go client library for producing and consuming messages from Apache Kafka clusters. It provides dedicated…