Companion module for the rewritten post 'Resilience4j Circuit Breaker in Spring Boot 4.1: What It's Still For', reworked around Framework 7 now shipping @Retryable/@ConcurrencyLimit in core. Covers what's still Resilience4j's job (circuit breaker, rate limiter, bulkhead's bounded wait, fallback methods, Actuator/Micrometer metrics), the off-by-one between maxAttempts and maxRetries, and two Boot-4.1 build breaks: spring-boot-starter-aop no longer exists (renamed to spring-boot-starter-aspectj, proven with Maven Central metadata and the renamed starter's own POM -- see resilience/docs/08-starter-aop-renamed-to-starter-aspectj.md in this same repo), and the resulting fix uses that renamed starter directly rather than assembling spring-aop + aspectjweaver by hand. Kept as its own module rather than a new top-level repository, alongside the existing resilience/ module for the sibling Framework-7 post.
9 lines
608 B
Plaintext
9 lines
608 B
Plaintext
Resilience4j @Retry(maxAttempts=3) against a permanently-dead downstream: counting convention
|
|
=============================================================================================
|
|
maxAttempts=3, downstream permanently down
|
|
downstream calls before giving up: 3
|
|
Resilience4j's maxAttempts is the TOTAL call count (initial attempt included): 3, not 4.
|
|
Core's @Retryable(maxRetries=3) is 3 retries AFTER the initial attempt: 4 total
|
|
(see docs/output/03b-retryable-no-memory.txt). Same-sounding config, different arithmetic --
|
|
porting a maxRetries value from one to the other by name alone is off by one.
|