Annotation Interface Resilience


@Documented @Retention(RUNTIME) @Target({METHOD,TYPE}) public @interface Resilience
Configures resilience policies for actions and roles.

This annotation provides declarative resilience configuration including retry policies, circuit breakers, rate limiting, and timeouts.

Usage on Method (Action-level)


 @ActionSpec(type = ActionType.WEB_SERVICE, ...)
 @Resilience(
     retry = @Retry(maxAttempts = 3, backoffMs = 1000),
     circuitBreaker = @CircuitBreaker(failureThreshold = 5, resetTimeoutMs = 30000),
     timeout = 5000
 )
 public Result fetchData(String query) { ... }
 

Usage on Type (Role-level default)


 @Resilience(
     retry = @Retry(maxAttempts = 2),
     timeout = 10000
 )
 public class ApiRole extends Role { ... }
 

Precedence

Method-level @Resilience overrides Type-level configuration.
Author:
TnsAI Team
See Also:
  • Element Details

    • retry

      Retry policy configuration.
      Returns:
      retry configuration
      Default:
      @com.tnsai.annotations.Resilience.Retry
    • circuitBreaker

      Circuit breaker configuration.
      Returns:
      circuit breaker configuration
      Default:
      @com.tnsai.annotations.Resilience.CircuitBreaker
    • rateLimit

      Rate limiting configuration.
      Returns:
      rate limit configuration
      Default:
      @com.tnsai.annotations.Resilience.RateLimit
    • timeout

      int timeout
      Timeout in milliseconds.

      0 means no timeout (use default).

      Returns:
      timeout in ms
      Default:
      0
    • fallback

      String fallback
      Fallback method name to call on failure.

      Method must have same signature as the annotated method.

      Returns:
      fallback method name
      Default:
      ""
    • bulkhead

      boolean bulkhead
      Whether to enable bulkhead isolation.

      When true, action runs in isolated thread pool.

      Returns:
      true to enable bulkhead
      Default:
      false
    • maxConcurrent

      int maxConcurrent
      Maximum concurrent executions (for bulkhead).
      Returns:
      max concurrent calls
      Default:
      10