Class ResilienceExecutor

java.lang.Object
com.tnsai.resilience.ResilienceExecutor

public final class ResilienceExecutor extends Object
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 Details

    • ResilienceExecutor

      public ResilienceExecutor()
    • ResilienceExecutor

      public ResilienceExecutor(DeadLetterQueue deadLetterQueue)
    • 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

      public DeadLetterQueue getDeadLetterQueue()
    • getBulkhead

      public io.github.resilience4j.bulkhead.Bulkhead getBulkhead(String name, int maxConcurrent)
      Gets or creates a bulkhead with the specified configuration.
      Parameters:
      name - bulkhead name
      maxConcurrent - 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 name
      maxRequests - max requests per window
      windowMs - time window in milliseconds
      Returns:
      configured rate limiter
    • execute

      public <T> T execute(ResilienceRequest<T> request) throws Exception
      Executes a request with the full resilience pipeline: Rate Limit -> Bulkhead -> Circuit Breaker -> Retry -> Operation
      Throws:
      Exception