awesome-repositories.com
Blog
MCP
awesome-repositories.com

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

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
antirez avatar

antirez/disque

0
View on GitHub↗
8,070 stars·535 forks·C·BSD-3-Clause·16 views

Disque

Disque is a distributed message broker that manages asynchronous communication between services through in-memory job queues. It operates as a cluster-aware job scheduler, providing at-least-once delivery guarantees with acknowledgment and retry mechanisms, and supports blocking queue consumers that efficiently wait for jobs to become available.

The broker implements a job state machine that tracks each job through its lifecycle from queued to acknowledged, with configurable retry limits and time-to-live expiration to prevent unbounded queue growth. Jobs can be enqueued with delivery guarantees, fetched via blocking or non-blocking calls, acknowledged upon completion, and rejected for reprocessing. The system supports extending job processing time to prevent premature redelivery, and queue operations can be paused and resumed with cluster-wide broadcast for coordinated maintenance.

Disque uses an asynchronous replication model where jobs are replicated to slave nodes without waiting for confirmation, prioritizing low latency over strong consistency. Nodes coordinate through a gossip-based protocol for peer discovery and state propagation without a central coordinator. All job data resides in memory for fast access, with optional persistence to disk for recovery after restarts. The broker provides queue and job state inspection capabilities, allowing operators to view queue length, job age, blocked clients, and individual job details.

Features

  • At-Least-Once Delivery Guarantees - Ensures every job is processed at least once using acknowledgments and redelivery.
  • In-Memory Queues - Stores all job data in memory for fast access with optional disk persistence.
  • Asynchronous Replication Management - Implements asynchronous replication where master acknowledges writes before all replicas confirm.
  • Lifecycle State Machines - Implements a job state machine tracking each job through its lifecycle from queued to acknowledged.
  • Retry and TTL Configurations - Adds jobs to queues with configurable retry limits, time-to-live, and delivery delays.
  • Gossip Protocols - Uses gossip-based protocol for peer discovery and state propagation across the cluster.
  • Message Brokers - Distributes jobs across multiple nodes in a cluster for fault-tolerant message processing.
  • Queue Pause and Resume Controls - Provides queue pause and resume controls with cluster-wide broadcast for coordinated maintenance.
  • Acknowledgments - Signals successful job completion to remove it from the queue and prevent redelivery.
  • Job Expirations - Automatically evicts jobs after configurable time-to-live to prevent unbounded queue growth.
  • Processing Time Extensions - Provides a mechanism for workers to extend job processing time, preventing premature redelivery.
  • Job Rejections and Requeues - Implements job rejection with automatic requeue and retry counter for at-least-once delivery.
  • Manual Job Fetching - Ships a blocking and non-blocking job fetch capability for retrieving jobs from queues.
  • Blocking Fetches - Provides blocking job fetch that waits until a job is available or a timeout expires.
  • Blocking Consumers - Provides blocking queue consumers that efficiently wait for jobs without polling overhead.
  • Message Brokers - Manages asynchronous communication between services through in-memory job queues.
  • Enqueue Operations - Adds messages to queues with configurable replication, delay, retry, and time-to-live settings.
  • Queue Consumers - Provides blocking queue consumers that efficiently wait for jobs without busy-waiting.
  • Retry Counters - Tracks retry counts on rejection to limit redeliveries and discard repeatedly failing jobs.
  • Inspections - Provides queue and job state inspection for viewing length, age, blocked clients, and job details.
  • Queue and Job State Inspections - Offers inspection commands for queue length, job age, blocked clients, and individual job details.

Star history

Star history chart for antirez/disqueStar history chart for antirez/disque

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

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 Disque

Similar open-source projects, ranked by how many features they share with Disque.
  • ouqiang/delay-queueouqiang avatar

    ouqiang/delay-queue

    1,194View on GitHub↗

    Delay Queue is a distributed delayed task queue backed by Redis that schedules, polls, and manages time-sensitive jobs for asynchronous processing. It functions as an asynchronous job scheduler that accepts jobs with delay durations for execution at future timestamps, alongside operating as a distributed message broker where clients can poll queues for due tasks and acknowledge completion. The service incorporates lease-based job acknowledgment to assign temporary processing locks and explicit completion tokens, preventing duplicate executions and managing unacknowledged retries. Delivery is

    Godelay-queuedelayed-jobdelayqueue
    View on GitHub↗1,194
  • ag2ai/faststreamag2ai avatar

    ag2ai/faststream

    4,967View on GitHub↗

    FastStream is an asyncio message broker framework for building event-driven applications in Python. It provides a unified interface and a multi-broker messaging abstraction layer that translates generic producer and consumer calls into broker-specific APIs. The framework features a built-in dependency injection container and uses decorators to route messages to asynchronous handler functions. It includes a documentation generator that extracts channel definitions and message formats from code to produce standardized AsyncAPI specifications. The project supports integration with Kafka, Rabbit

    Pythonasyncapiasynciodistributed-systems
    View on GitHub↗4,967
  • akkadotnet/akka.netakkadotnet avatar

    akkadotnet/akka.net

    5,023View on GitHub↗

    Akka.NET is an actor model framework used for building concurrent and distributed applications. It functions as a distributed computing platform and state manager that enables isolated actors to communicate via asynchronous message passing, ensuring thread-safe state management without manual locks. The project is distinguished by its decentralized coordination capabilities, including a distributed state manager that uses sharding and dynamic rebalancing to maintain high availability. It incorporates an event sourcing engine that persists state as a sequence of events in an append-only log an

    C#actoractor-modelakka
    View on GitHub↗5,023
  • beanstalkd/beanstalkdbeanstalkd avatar

    beanstalkd/beanstalkd

    6,697View on GitHub↗

    Beanstalkd is a distributed work queue server designed for asynchronous job processing. It functions as a standalone server that distributes background tasks between producers and consumers to improve application responsiveness and throughput. The system organizes tasks using numeric priority levels to ensure critical work is processed first. It manages the job lifecycle through discrete states and uses a simple line-based text protocol over TCP for communication. To ensure reliability, the server persists job data to a sequential disk log, allowing the queue state to be recovered after a sy

    C
    View on GitHub↗6,697
See all 30 alternatives to Disque→

Frequently asked questions

What does antirez/disque do?

Disque is a distributed message broker that manages asynchronous communication between services through in-memory job queues. It operates as a cluster-aware job scheduler, providing at-least-once delivery guarantees with acknowledgment and retry mechanisms, and supports blocking queue consumers that efficiently wait for jobs to become available.

What are the main features of antirez/disque?

The main features of antirez/disque are: At-Least-Once Delivery Guarantees, In-Memory Queues, Asynchronous Replication Management, Lifecycle State Machines, Retry and TTL Configurations, Gossip Protocols, Message Brokers, Queue Pause and Resume Controls.

What are some open-source alternatives to antirez/disque?

Open-source alternatives to antirez/disque include: ouqiang/delay-queue — Delay Queue is a distributed delayed task queue backed by Redis that schedules, polls, and manages time-sensitive jobs… ag2ai/faststream — FastStream is an asyncio message broker framework for building event-driven applications in Python. It provides a… akkadotnet/akka.net — Akka.NET is an actor model framework used for building concurrent and distributed applications. It functions as a… beanstalkd/beanstalkd — Beanstalkd is a distributed work queue server designed for asynchronous job processing. It functions as a standalone… sorentwo/oban — Oban is a relational database-backed job processor and task scheduler for Elixir applications. It functions as a… automattic/kue — Kue is a Redis-backed job queue library for Node.js that provides a complete system for defining, scheduling, and…