Skip to content

v0.3.0 — Redis Streams Backend & Reliable Delivery Foundations

Choose a tag to compare

@Metalymph Metalymph released this 30 May 18:39
· 58 commits to master since this release

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