Releases: Metalymph/relay
Release list
v0.5.0
- Separated relay into core, memory, and worker packages for explicit modular imports.\n- Moved Valkey (Redis) backend adapters to the Metalymph/valkey repository.\n- Upgraded the codebase to be fully compatible with MoonBit 0.10.
Relay v0.4.1
Relay v0.4.1
Relay v0.4.1 completes the Valkey repository separation and simplifies the Relay workspace architecture.
Highlights
Repository Decoupling
- Removed the embedded Valkey package from the Relay repository
- Relay now depends on the published Metalymph/valkey package
- Reduced coupling between queue infrastructure and Redis/Valkey client implementation
Dependency Updates
- Updated Relay to depend on Metalymph/valkey v0.4.1
- Simplified workspace membership and package management
Documentation
- Improved release metadata
- Refined project structure documentation
Validation
sh moon update moon info moon check --target native moon test --target native
All checks pass.
Upgrade Notes
Existing Relay users can upgrade normally:
json { "deps": { "Metalymph/relay": "0.4.1" } }
No public API changes were introduced in this release.
Previous Release
Relay v0.4.0 introduced:
- Reliability primitives
- Telemetry and observability
- Administrative reporting
- Incident detection and severity classification
- OpenTelemetry-compatible exports
- Prometheus-compatible exports
Next
v0.5.x will focus on:
- NATS JetStream backend
- Stream-oriented capability extensions
- Operational integrations for distributed streaming workloads
Relay v0.4.0
Relay v0.4.0
Relay v0.4.0 introduces reliability, observability, operational reporting, incident management, and export foundations for distributed queue systems built with MoonBit.
Highlights
Reliability
- Retry policies
- Dead Letter Queue support
- Worker statistics and reliability accounting
- Pending message recovery
Observability
- Worker metrics
- Queue metrics
- Backend health checks
- Telemetry snapshots
- System status evaluation
Operations
- Queue inspection APIs
- Administrative reporting
- Human-readable operational summaries
Incident Management
- Incident detection
- Incident severity classification
- Capability-aware incident analysis
Export Models
- OpenTelemetry-compatible records
- Prometheus-compatible metrics
Backend Support
- InMemoryBackend
- RedisBackend
- RedisStreamBackend
Documentation
- Updated README
- Added ARCHITECTURE.md
- Added CONTRIBUTING.md
- Expanded CHANGELOG
Next
v0.4.1 will focus on:
- Valkey repository separation
- Additional examples
- Documentation refinements
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 APIsv0.2.2
v0.2.1
v0.2.1
Added
- Typed Valkey client helpers:
pinggetsetdelexists
- Functional Valkey-backed Relay queue operations:
push- blocking
pop - non-blocking
pop_nowait size
Fixed
- RESP bulk string parsing now validates CRLF terminators.
- RESP command encoding now uses UTF-8 byte lengths.
Tests
- Expanded RESP parser coverage.
- Added native Valkey smoke/integration tests.
v0.1
🚀 Release v0.1.0: Cloud Kit Foundations
I'm excited to announce the first official release of Relay and Valkey for MoonBit. This release establishes a robust foundation for building distributed, high-concurrency cloud applications using the native moonbitlang/async runtime.
📦 What's included?
⚡ Metalymph/valkey
A native, asynchronous RESP (Redis Serialization Protocol) client for MoonBit.
- Async TCP Stack: Built entirely on
@socket.Tcp, allowing non-blocking I/O. - RESP Protocol Support: Native encoding and decoding of Redis commands and streams.
- Connection Management: Simplified connection handling with built-in error types.
🔄 Metalymph/relay
A flexible, distributed message queue abstraction designed for reliability.
- Pluggable Backends:
InMemoryBackend: High-performance asynchronous queue for local actors.RedisBackend: Distributed queue implementation using the Valkey driver.
- V3 Reliability: In-flight message tracking with
Ack(acknowledgment) andNack(negative acknowledgment) logic. - Worker Pool: Built-in concurrency management with automatic retry policies and task group orchestration.
🛠 Project Health
- GitHub Actions CI: Automated build and test pipeline (9/9 tests passing).
- Comprehensive Documentation: Updated guides for monorepo usage and getting started.
- Code Standards: 100% compliant with standard MoonBit formatting.
📦 Getting Started
Add Relay to your moon.mod.json:
{
"deps": {
"Metalymph/relay": "0.1.0"
}
}Check the README.md for detailed architecture diagrams and usage examples!