v0.3.0 — Redis Streams Backend & Reliable Delivery Foundations
Relay v0.3.0
This release introduces a complete Redis/Valkey Streams backend for Relay, bringing consumer groups, pending message recovery, dead-letter queues, and at-least-once delivery semantics.
Highlights
Redis / Valkey Streams Support
Relay now supports a dedicated Streams backend built on top of Redis/Valkey consumer groups.
Features include:
- Stream publishing via XADD
- Consumer groups via XGROUP CREATE
- Blocking stream consumption
- Message acknowledgements via XACK
- Pending entry inspection
- Pending entry recovery via XAUTOCLAIM
- Dead-letter queue support
- RelayQueue integration
Reliability Improvements
The Streams backend provides:
- At-least-once delivery semantics
- Consumer group coordination
- Pending message recovery after worker crashes
- Dead-letter routing for failed messages
- Blocking consumption for efficient workers
Valkey Client Enhancements
Added typed helpers for Redis Streams:
- xadd()
- xgroup_create()
- xreadgroup()
- xreadgroup_block()
- xack()
- xautoclaim()
- xpending_count()
Testing
Added integration coverage for:
- Stream publishing and consumption
- Blocking reads
- Pending entry inspection
- Pending entry recovery
- Dead-letter queue routing
- RelayQueue integration
All native tests pass.
moon check --target native
moon test --target native
Upgrade Notes
No breaking API changes were introduced for existing list-based backends.
The new RedisStreamBackend is available as an additional backend option and can coexist with the existing InMemoryBackend and Redis list-based backend.
What’s Next
Planned areas for future work:
* Retry policies
* Automatic DLQ thresholds
* Worker metrics
* Dashboard integration
* Stream trimming and retention controls
* Batch consumption APIs