awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
antirez avatar

antirez/disque

0
View on GitHub↗
8,070 estrellas·535 forks·C·BSD-3-Clause·1 vista

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.

Historial de estrellas

Gráfico del historial de estrellas de antirez/disqueGráfico del historial de estrellas de antirez/disque

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Alternativas open-source a Disque

Proyectos open-source similares, clasificados según cuántas características comparten con Disque.
  • ag2ai/faststreamAvatar de ag2ai

    ag2ai/faststream

    4,967Ver en 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
    Ver en GitHub↗4,967
  • akkadotnet/akka.netAvatar de akkadotnet

    akkadotnet/akka.net

    5,023Ver en 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
    Ver en GitHub↗5,023
  • beanstalkd/beanstalkdAvatar de beanstalkd

    beanstalkd/beanstalkd

    6,697Ver en 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
    Ver en GitHub↗6,697
  • sorentwo/obanAvatar de sorentwo

    sorentwo/oban

    3,930Ver en GitHub↗

    Oban is a relational database-backed job processor and task scheduler for Elixir applications. It functions as a distributed workflow orchestrator that leverages database primitives to ensure job persistence, reliability, and consistent state management across clusters. The system distinguishes itself through complex workflow orchestration, enabling the composition of task dependencies using batching, sequential processing, and fan-out or fan-in patterns. It provides global throughput limiting and uniqueness enforcement to prevent duplicate work and protect downstream resources across distrib

    Elixir
    Ver en GitHub↗3,930
Ver las 30 alternativas a Disque→

Preguntas frecuentes

¿Qué hace antirez/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.

¿Cuáles son las características principales de antirez/disque?

Las características principales de antirez/disque son: 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.

¿Qué alternativas de código abierto existen para antirez/disque?

Las alternativas de código abierto para antirez/disque incluyen: 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… sorentwo/oban — Oban is a relational database-backed job processor and task scheduler for Elixir applications. It functions as a… beanstalkd/beanstalkd — Beanstalkd is a distributed work queue server designed for asynchronous job processing. It functions as a standalone… automattic/kue — Kue is a Redis-backed job queue library for Node.js that provides a complete system for defining, scheduling, and… benthosdev/benthos — Benthos is a stream processing engine and data integration pipeline used for routing, transforming, and connecting…