Skip to content

v1.5.0

Choose a tag to compare

@sameh-farouk sameh-farouk released this 21 Sep 16:01
· 14 commits to main since this release
4a44655

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-swap for lock-free reconnects and a "single-flight" pattern to prevent "thundering herd" scenarios on cache misses or reconnect attempts.
  • Self-Healing Event Listener: The EventListener is 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-fast option 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 relays Field: The client-supplied relays field 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