Skip to content

Phase 4 — routing & resilience#3

Merged
MihirMohapatra merged 1 commit into
mainfrom
phase-4-routing
May 25, 2026
Merged

Phase 4 — routing & resilience#3
MihirMohapatra merged 1 commit into
mainfrom
phase-4-routing

Conversation

@MihirMohapatra

Copy link
Copy Markdown
Owner
  • ModelRouter trait (ModelNameRouter, PriorityRouter) for provider selection
  • ProviderMap with DashMap<ProviderId, Arc> + fallback chain
  • OpenAIClient / AnthropicClient reqwest-based ProviderClient impls
  • RetryClient: exponential backoff on RateLimited/Timeout
  • CircuitBreakerClient: Closed >> Open >> HalfOpen state machine
  • Unified ChatCompletionRequest/Response types in adapters crate
  • Routes wired with AppState holding provider map

- ModelRouter trait (ModelNameRouter, PriorityRouter) for provider selection
- ProviderMap with DashMap<ProviderId, Arc<dyn ProviderClient>> + fallback chain
- OpenAIClient / AnthropicClient reqwest-based ProviderClient impls
- RetryClient: exponential backoff on RateLimited/Timeout
- CircuitBreakerClient: Closed >> Open >> HalfOpen state machine
- Unified ChatCompletionRequest/Response types in adapters crate
- Routes wired with AppState holding provider map
@MihirMohapatra
MihirMohapatra merged commit 2909f4f into main May 25, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant