feat: implement Stellar Provider SLA Evaluator and Soroban Route Fallback Planner (#469, #470)#683
Merged
mijinummi merged 1 commit intoJun 28, 2026
Conversation
…back Planner Closes MDTechLabs#469 Closes MDTechLabs#470 Closes MDTechLabs#471 Closes MDTechLabs#472 - MDTechLabs#469: Implement Stellar Provider SLA Evaluator src/monitoring/sla/providers/stellar/ StellarProviderSlaEvaluator tracks uptime checks and response times per provider within a rolling window (default 24 h). Evaluates four SLA dimensions: uptime %, average response time, p99 response time, and success rate. Each dimension returns a pass/warn/fail verdict; the overall verdict is the worst across all dimensions. Fires onBreach / onRecovery callbacks on state transitions. generateReport() / generateAllReports() produce structured SLAProviderReport objects with per-window stats and recommendations. - MDTechLabs#470: Implement Soroban Route Fallback Planner src/routing/fallbacks/stellar/ SorobanRouteFallbackPlanner generates ranked alternative routes when a preferred route fails. plan() excludes the failed provider (and any extra excluded providers), filters candidates to the same source/dest chains, applies a minimum reliability threshold, and ranks survivors by a weighted score of fee, speed, and provider reliability (defaulting to favour reliability in fallback scenarios). Returns a FallbackPlanResult with a ranked alternatives list, the best route, and a shouldAutoFailover flag driven by the configured FailoverPolicy. markProviderUnavailable() immediately zeros a provider reliability score to exclude it from future plans until explicitly restored.
|
@nanlebenthel-web Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #469
Closes #470
Closes #471
Closes #472
Summary
This PR implements two features assigned to me.
#469 — Stellar Provider SLA Evaluator
Path:
src/monitoring/sla/providers/stellar/Files:
types.ts—SLATargets,UptimeCheck,SLAEvaluation,SLAProviderReport, and config typesstellar-provider-sla-evaluator.ts—StellarProviderSlaEvaluatorclassindex.ts— barrel exportWhat it does:
recordSuccess/recordFailure) per provider within a rolling configurable window (default 24 h)pass/warn/failverdict; the overall verdict is the worst across all dimensionsonBreach/onRecoverycallbacks on state transitions to drive alertinggenerateReport()/generateAllReports()produce structuredSLAProviderReportobjects with multi-window stats, recommendations, and a human-readable summary#470 — Soroban Route Fallback Planner
Path:
src/routing/fallbacks/stellar/Files:
types.ts—FallbackReason,RankedFallbackRoute,FallbackPlanResult,FailoverPolicy, and config typessoroban-route-fallback-planner.ts—SorobanRouteFallbackPlannerclassindex.ts— barrel exportWhat it does:
registerRoutes()maintains a pool of candidate routesplan(failedRoute, reason, excludeProviders?)generates a ranked list of alternatives:FallbackPlanResultwith ranked alternatives, best route, andshouldAutoFailoverflagmarkProviderUnavailable()zeroes a provider's reliability score to exclude it from future plans immediatelyupdateReliability()restores a provider's score once it recovers