Repository navigation
v1.5.0
Release Notes
Version 1.5.0 represents a major architectural overhaul of the RMB Relay, focused on delivering production-grade reliability, significant performance enhancements, and deep observability. The entire federation system and Substrate client have been re-engineered to be self-healing and highly resilient, while the core networking stack has been modernized for future performance gains.
Architectural & Reliability Overhaul
- Federation on Redis Streams: The inter-relay federation mechanism has been completely rebuilt on Redis Streams and consumer groups. This provides at-least-once delivery semantics and automatic recovery of failed messages, ensuring no messages are lost during transit.
- Resilient Substrate Client: The client interacting with the TFChain is now highly resilient to network failures. It uses
arc-swapfor lock-free reconnects and a "single-flight" pattern to prevent "thundering herd" scenarios on cache misses or reconnect attempts. - Self-Healing Event Listener: The
EventListeneris now a robust, self-healing service. It includes a watchdog for stall detection, an intelligent catch-up mechanism to recover from disconnects without full resets, and an indefinite retry loop for maximum uptime.
Performance & Efficiency
- Prioritized Local Routing: Messages are now routed to locally connected peers before attempting federation. This significantly reduces latency for local traffic and lowers the load on external services.
- Batched Message ACKs: WebSocket message acknowledgments are now batched, drastically reducing Redis round-trips under heavy load and improving overall throughput.
- Fair Worker Load Balancing: New connections and registrations are now distributed fairly across all available workers, preventing a single worker from being overloaded during connection bursts.
- Intelligent Redis Pool Sizing: The Redis connection pool is now sized dynamically based on consumer count plus a dedicated headroom, preventing pool exhaustion and ensuring stability under load.
New Features & API Changes
- Fast-Fail Mode: A new
fail-fastoption allows clients to receive an immediate error response if a message's destination is known to be offline, perfect for time-sensitive operations that shouldn't wait for a timeout. - Deprecation of
relaysField: The client-suppliedrelaysfield in the message envelope is now deprecated. Routing is now determined by authoritative chain data. While the field is ignored, backward compatibility is maintained to ensure older clients do not break.
Networking & Modernization
- Hyper 1.0 Upgrade: The entire HTTP stack has been upgraded from Hyper 0.14 to the modern Hyper 1.0 API and its ecosystem of crates (
reqwest,hyper-util). This brings significant performance improvements and aligns the project with the latest industry standards.
Observability
- Expanded Prometheus Metrics: Comprehensive Prometheus metrics have been added to provide deep insight into the relay's health, including detailed metrics for the twin cache (hits, misses, flushes) and the Event Listener's operational status.
Full Changelog: v1.3.4...v1.5.0