1.6 KiB
1.6 KiB
Region-Aware Routing Algorithm
Module
Router
Status
IMPLEMENTED
Description
Full routing algorithm with 3-tier region preference (Tier 0: same region, Tier 1: same continent, Tier 2: cross-continent), ping-based latency selection within tiers, heartbeat recency weighting, and round-robin/random tie-breaking for deterministic load distribution.
Implementation Details
- Modules:
src/Router/__Libraries/StellaOps.Router.Gateway/Routing/,src/Router/__Libraries/StellaOps.Router.Gateway/Services/ - Key Classes:
DefaultRoutingPlugin(src/Router/__Libraries/StellaOps.Router.Gateway/Routing/DefaultRoutingPlugin.cs) - implements 3-tier region preference with latency-based selectionPingTracker(src/Router/__Libraries/StellaOps.Router.Gateway/Services/PingTracker.cs) - tracks ping-based latency measurements per instanceInMemoryRoutingState(src/Router/__Libraries/StellaOps.Router.Gateway/State/InMemoryRoutingState.cs) - routing state with instance region metadata
- Interfaces:
IRoutingPlugin,IGlobalRoutingState,IRegionProvider - Source: batch_51/file_24.md
E2E Test Plan
- Register instances in the same region, same continent, and cross-continent, then route a request and verify Tier 0 preference
- Verify latency-based selection: within the same tier, confirm the lowest-latency instance is preferred
- Verify heartbeat recency weighting: stale instances are deprioritized
- Verify round-robin tie-breaking: when latency is equal, confirm requests distribute evenly
- Remove all Tier 0 instances and verify fallback to Tier 1, then Tier 2