Limitations
Quicx is a fast in-memory broker, not a durable one. No persistence, no redelivery, no retries, one global FIFO, one core. Part of the latency advantage is work Quicx is not doing — here is exactly which work.
What Quicx does not do
Quicx is a fast in-memory broker, not a durable one. Today it does not do:
- Persistence
A restart loses everything queued.
- Redelivery
If a worker dies mid-task, the task is lost and the producer is not notified.
- Retries
No automatic retry, no dead-lettering.
- Priorities, delays, named queues
One global FIFO.
- Client libraries beyond Java
dev.quicx:quicx-client is the only one. Every other language talks the wire protocol directly — it is documented and small.
- Payloads above 1 KB
PROTOCOL_MAX_PAYLOAD is 1024 bytes, matching the largest PMAD size class. Oversized frames get a clean MSG_ERROR.
- Multiple cores
Single-threaded today. Scale out by running several daemons behind a TCP load balancer.
beanstalkd or Redis Streams.Feature for feature
| Quicx | beanstalkd | Redis Streams | RabbitMQ | |
|---|---|---|---|---|
| memory bound | exact, configured | none | cap + eviction | none |
| binary size | 54 KB | ~ | ~1 MB+ | large |
| dependencies | none | libevent | none | Erlang/OTP |
| delivery | at-most-once | at-least-once | at-least-once | at-least-once |
| survives worker crash | no | yes (TTR) | yes | yes |
| persistence | no | optional | yes | yes |
| multi-core | no | no | partial | yes |
When Quicx is the right call
Quicx is the task queue you reach for when you need to know, exactly, how much memory the broker will use. A fixed pool declared at startup, exact per-size-class accounting, and no growth under load — that is the guarantee none of the systems in the table above make.
Speed is the supporting evidence, not the headline. If your tasks are cheap, local, replayable from the source of truth, and you would rather have a hard memory ceiling than durable delivery, Quicx fits. If losing a task on a worker crash is unacceptable, it does not — and no benchmark number changes that.