Package com.tnsai.resilience
Class ResilienceExecutor
java.lang.Object
com.tnsai.resilience.ResilienceExecutor
Central executor that combines retry policies, circuit breaker, bulkhead,
rate limiting and dead-letter queue tracking.
Supports all resilience patterns from @Resilience annotation:
- Retry with exponential backoff and jitter
- Circuit breaker
- Bulkhead (thread pool isolation)
- Rate limiting
- Timeout
- Fallback
-
Constructor Summary
ConstructorsConstructorDescriptionResilienceExecutor(DeadLetterQueue deadLetterQueue) ResilienceExecutor(io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry circuitBreakerRegistry, io.github.resilience4j.bulkhead.BulkheadRegistry bulkheadRegistry, io.github.resilience4j.ratelimiter.RateLimiterRegistry rateLimiterRegistry, DeadLetterQueue deadLetterQueue) -
Method Summary
Modifier and TypeMethodDescription<T> Texecute(ResilienceRequest<T> request) Executes a request with the full resilience pipeline: Rate Limit -> Bulkhead -> Circuit Breaker -> Retry -> Operationio.github.resilience4j.bulkhead.BulkheadgetBulkhead(String name, int maxConcurrent) Gets or creates a bulkhead with the specified configuration.io.github.resilience4j.ratelimiter.RateLimitergetRateLimiter(String name, int maxRequests, int windowMs) Gets or creates a rate limiter with the specified configuration.
-
Constructor Details
-
ResilienceExecutor
public ResilienceExecutor() -
ResilienceExecutor
-
ResilienceExecutor
public ResilienceExecutor(io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry circuitBreakerRegistry, io.github.resilience4j.bulkhead.BulkheadRegistry bulkheadRegistry, io.github.resilience4j.ratelimiter.RateLimiterRegistry rateLimiterRegistry, DeadLetterQueue deadLetterQueue)
-
-
Method Details
-
getDeadLetterQueue
-
getBulkhead
Gets or creates a bulkhead with the specified configuration.- Parameters:
name- bulkhead namemaxConcurrent- maximum concurrent calls- Returns:
- configured bulkhead
-
getRateLimiter
public io.github.resilience4j.ratelimiter.RateLimiter getRateLimiter(String name, int maxRequests, int windowMs) Gets or creates a rate limiter with the specified configuration.- Parameters:
name- rate limiter namemaxRequests- max requests per windowwindowMs- time window in milliseconds- Returns:
- configured rate limiter
-
execute
Executes a request with the full resilience pipeline: Rate Limit -> Bulkhead -> Circuit Breaker -> Retry -> Operation- Throws:
Exception
-