Files
spring-boot-demo/resilience/docs/output/r4j-combo.txt
T
asmhatreandClaude Opus 5 7e1676c763 Add resilience: Spring Framework 7 @Retryable and @ConcurrencyLimit
Companion code for "Spring Framework 7's Built-in Resilience: @Retryable,
@ConcurrencyLimit, and What's Left for Resilience4j". Every retry counted
by recording real invocations: defaults, backoff and jitter, timeout,
reactive and CompletableFuture returns, the concurrency limit's BLOCK and
REJECT policies, retries around transactions, composition with
Resilience4j 2.4.0, and the annotation API across 7.0.0-7.0.9.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01C3TETMrqVUWeFkNtz3Jbo3
2026-09-11 17:12:25 +00:00

32 lines
1.4 KiB
Plaintext

# GET /demo/r4j/combo (Spring Framework 7.0.9, Resilience4j 2.4.0, JDK 25)
# Source: src/main/java/com/ankurm/resilience/web/DemoController.java
{
"call 1": {
"caller got": "TransientException: payment gateway 503 (call 4)",
"method body ran": 4,
"elapsed (ms)": 35,
"breaker: buffered / failed / not permitted": "4 / 4 / 0",
"breaker state": "CLOSED"
},
"call 2": {
"caller got": "CallNotPermittedException: CircuitBreaker 'combo' is OPEN and does not permit further calls",
"method body ran": 1,
"elapsed (ms)": 33,
"breaker: buffered / failed / not permitted": "5 / 5 / 3",
"breaker state": "OPEN"
},
"MethodRetryEvents": [
"chargeWithBoth failed with TransientException -> will retry",
"chargeWithBoth failed with TransientException -> will retry",
"chargeWithBoth failed with TransientException -> will retry",
"chargeWithBoth failed with TransientException -> will retry",
"chargeWithBoth failed with RetryException -> retry aborted",
"chargeWithBoth failed with TransientException -> will retry",
"chargeWithBoth failed with CallNotPermittedException -> will retry",
"chargeWithBoth failed with CallNotPermittedException -> will retry",
"chargeWithBoth failed with CallNotPermittedException -> will retry",
"chargeWithBoth failed with RetryException -> retry aborted"
]
}