Package com.tnsai.resilience
Class ResilienceRequest<T>
java.lang.Object
com.tnsai.resilience.ResilienceRequest<T>
- Type Parameters:
T- Result type
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
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> ResilienceRequest.Builder<T> builder()intMaximum concurrent calls allowed when bulkhead is enabled.intMaximum requests allowed in the rate limit window.intRate limit time window in milliseconds.getSpec()intTimeout in milliseconds.booleanWhether bulkhead isolation is enabled for this operation.booleanWhether rate limiting is enabled for this operation.booleanWhether timeout is enabled for this operation.
-
Method Details
-
getOperationId
-
getOperation
-
getRetryPolicy
-
getFallbackStrategy
-
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
-