finds.dev← search

// the find

antirez/disque

★ 8,069 · C · BSD-3-Clause · updated Mar 2021

Disque is a distributed message broker

Disque is a distributed, in-memory job queue built by antirez (Redis creator) as a dedicated broker for the 'Redis as a job queue' pattern. It runs as a multi-master cluster where any node can accept producers or consumers, with configurable replication, retry, and TTL per job. It never reached a stable 1.0 release and has been effectively unmaintained since 2021.

The per-job control over replication factor, delay, retry, and TTL is genuinely well thought out — you can tune durability vs. latency per message type rather than per queue. The ACK garbage collection protocol (dummy ACKs, SETACK/GOTACK rounds) handles the hard problem of distributed deduplication better than most simple queue implementations. FASTACK gives you an explicit escape hatch when you want throughput over delivery guarantees. The cluster topology is simple: all nodes are peers, no leader election, clients connect to any node — operationally much less drama than Kafka or RabbitMQ.

The project is dead. Last commit is 2021, it never shipped a stable release, and antirez has publicly moved on. You would be adopting beta C code with no security patches and no community. The ordering guarantee is best-effort only — clock skew and rebalancing will reorder messages, which disqualifies it for any workflow that actually needs FIFO. There are no official client libraries for most languages beyond the protocol spec, so you're writing your own or using unmaintained community ports. Finally, in-memory-only mode with synchronous replication means a simultaneous multi-node failure loses jobs permanently, and the AOF story requires careful manual orchestration to avoid delivering at-most-once jobs twice on restart.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →