Skip to content

Releases: Metalymph/relay

v0.5.0

Choose a tag to compare

@Metalymph Metalymph released this 25 Jun 16:18
  • 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

Choose a tag to compare

@Metalymph Metalymph released this 01 Jun 13:21

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

Choose a tag to compare

@Metalymph Metalymph released this 01 Jun 11:32

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

Choose a tag to compare

@Metalymph Metalymph released this 30 May 18:39

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

v0.2.2

Choose a tag to compare

@Metalymph Metalymph released this 30 May 17:33

v0.2.2

Fixed

  • Fixed Mooncakes publishing for native-only Valkey client types by gating native APIs correctly.

Notes

  • Metalymph/valkey and Metalymph/relay are both released as 0.2.2.
  • This release supersedes v0.2.1.

v0.2.1

Choose a tag to compare

@Metalymph Metalymph released this 30 May 17:26

v0.2.1

Added

  • Typed Valkey client helpers:
    • ping
    • get
    • set
    • del
    • exists
  • 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

Choose a tag to compare

@Metalymph Metalymph released this 14 Apr 11:05

🚀 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) and Nack (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!