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
13 lines
583 B
Plaintext
13 lines
583 B
Plaintext
# GET /demo/tx/joined (Spring Framework 7.0.9, Resilience4j 2.4.0, JDK 25)
|
|
# Source: src/main/java/com/ankurm/resilience/web/DemoController.java
|
|
|
|
{
|
|
"caller got": "org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only",
|
|
"attempts": [
|
|
"attempt 1: transaction active=true, connection holder @6135f416",
|
|
"attempt 2: transaction active=true, connection holder @6135f416",
|
|
"attempt 3: transaction active=true, connection holder @6135f416"
|
|
],
|
|
"rows in stock_movement": 0
|
|
}
|