Class ResilienceRequest<T>

java.lang.Object
com.tnsai.resilience.ResilienceRequest<T>
Type Parameters:
T - Result type

public final class ResilienceRequest<T> extends Object
Immutable descriptor for executing an operation through the resilience pipeline.

Supports all resilience patterns:

  • Retry with exponential backoff and jitter
  • Circuit breaker
  • Bulkhead (concurrency isolation)
  • Rate limiting
  • Fallback
  • Method Details

    • getOperationId

      public String getOperationId()
    • getOperation

      public Callable<T> getOperation()
    • getRetryPolicy

      public RetryPolicy getRetryPolicy()
    • getFallbackStrategy

      public FallbackStrategy<T> getFallbackStrategy()
    • getSpec

      public Map<String,Object> getSpec()
    • isBulkheadEnabled

      public boolean isBulkheadEnabled()
      Whether bulkhead isolation is enabled for this operation.
      Returns:
      true if bulkhead is enabled
    • getMaxConcurrent

      public int getMaxConcurrent()
      Maximum concurrent calls allowed when bulkhead is enabled.
      Returns:
      max concurrent calls
    • isRateLimitEnabled

      public boolean isRateLimitEnabled()
      Whether rate limiting is enabled for this operation.
      Returns:
      true if rate limiting is enabled
    • getRateLimitMaxRequests

      public int getRateLimitMaxRequests()
      Maximum requests allowed in the rate limit window.
      Returns:
      max requests per window
    • getRateLimitWindowMs

      public int getRateLimitWindowMs()
      Rate limit time window in milliseconds.
      Returns:
      window size in ms
    • isTimeoutEnabled

      public boolean isTimeoutEnabled()
      Whether timeout is enabled for this operation.
      Returns:
      true if timeout is configured (timeoutMs > 0)
    • getTimeoutMs

      public int getTimeoutMs()
      Timeout in milliseconds.
      Returns:
      timeout in ms, 0 means no timeout
    • builder

      public static <T> ResilienceRequest.Builder<T> builder()