Valkey Streams Benchmarks
Streams is the primary scenario for persistent tasks in Valkey Queue. This campaign measures the complete message cycle:
XADD -> XREADGROUP -> XACKWhat is measured
The benchmark uses one publisher, one consumer, and one consumer group. A capacity is approved only when the complete cycle has zero loss, zero errors, zero pending entries, and p99 latency at or below 100 ms.
Two scenarios run for each plan and payload:
- Individual ACK: one message per read and one
XACKper message; - Batch ACK: up to 100 messages per read and one
XACKfor the batch.
Latency starts immediately before XADD and ends after the successful XACK
response. The report includes P50, P90, P95, and P99, using the worst value
across three 30-second runs.
Retention and storage
Each candidate uses a unique stream and consumer group. Entries are created
with XADD MAXLEN ~ to limit retention, and the stream is removed after the
run. The test measures throughput, latency, XLEN, estimated memory, and
pending entries; it does not try to fill the plan's persistent storage.
Persistent storage supports retention and recovery, but does not mean every
XADD waits for a synchronous fsync. Per-message durability during a failure
depends on how the plan's persistence and replicas are managed.
Status
No Streams results have been published yet. Per-plan numbers will be added only after the complete confirmation campaign; no Streams capacity is inferred from Pub/Sub results.
Limitations
This scenario measures one producer and one consumer. It does not represent
four-worker scaling, XAUTOCLAIM recovery, dead-letter streams, long-term
retention, or filling the storage quota.
Next steps
Last updated on
Valkey Queue Benchmarks
Valkey Queue throughput and latency results for the queue-free through queue-enterprise plans, using Pub/Sub, JSON messages, and p99 below 100 ms.
Analytics on Zenifra
Explore managed ClickHouse for events and analytical queries, then follow the path through creation, plans, connections, queries, and operations.