The Resilience4j Aspects order is the following:Retry ( CircuitBreaker ( RateLimiter ( TimeLimiter ( Bulkhead ( Function ) ) ) ) )
so Retry is applied at the end (if needed).
If you need a different order, you must use the functional chaining style instead of the Spring annotations style or explicitly set aspect order using the following properties:
- resilience4j.retry.retryAspectOrder - resilience4j.circuitbreaker.circuitBreakerAspectOrder - resilience4j.ratelimiter.rateLimiterAspectOrder - resilience4j.timelimiter.timeLimiterAspectOrder - resilience4j.bulkhead.bulkheadAspectOrder
For example – to make Circuit Breaker starts after Retry finish its work you must set retryAspectOrder property to greater value than circuitBreakerAspectOrder value (the higher value = the higher priority).
resilience4j:
circuitbreaker:
circuitBreakerAspectOrder: 1
retry:
retryAspectOrder: 2
