[automatic-failover] Draft implementation for automatic-failover #3508
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.
Draft: Automatic Failover Feature for Lettuce
Overview
Initial implementation of automatic failover capabilities for Lettuce Redis client with a built in circuit breaker and multi-database support.
Key Components
Circuit Breaker Implementation
CircuitBreaker- Core circuit breaker with configurable failure thresholds and tracked exceptionsCircuitBreakerMetrics- Metrics tracking for success/failure ratesMulti-Database Client
MultiDbClient- Failover-aware client managing multiple Redis endpointsStatefulRedisMultiDbConnection- Connection wrapper with automatic endpoint switchingStatefulRedisMultiDbPubSubConnection- PubSub support with failover capabilitiesEndpoint Tracking
DatabaseEndpoint- Custom endpoints,DatabaseEndpointImpl/DatabasePubSubEndpointImplextendingDefaultEndpointandPubSubEndpointFailover Logic
Configuration
DatabaseConfig- Per-database configuration:Default Circuit Breaker Settings:
Notes