resilience-retry

Solid

Use when adding retries, backoff, or concurrency protection to Spring Boot 3 / Spring Framework 6 services. Covers Spring Retry or Resilience4j selection, proxy behavior, and transaction limits.

AI & Automation 225 stars 37 forks Updated 6 days ago MIT

Install

View on GitHub

Quality Score: 85/100

Stars 20%
78
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
80
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# Resilience and Retry (Boot 3) Boot 3 does not have Spring Framework 7 core resilience annotations. Choose Spring Retry for simple imperative retry or Resilience4j when you also need circuit breakers, rate limiting, or bulkheads. Keep the dependency and configuration explicit. ```java @Configuration @EnableRetry class RetryConfig { } @Service class PaymentClient { @Retryable( retryFor = ConnectException.class, maxAttempts = 4, backoff = @Backoff(delay = 200, multiplier = 2.0, maxDelay = 2000)) PaymentResult charge(ChargeRequest request) { ... } @Recover PaymentResult recover(ConnectException error, ChargeRequest request) { ... } } ``` Spring Retry's `maxAttempts` includes the initial call. Resilience4j is preferable when retry must be composed with a circuit breaker or bulkhead. Both approaches are proxy-based: self invocation bypasses advice, and retrying a method inside a rollback-only transaction does not create a fresh transaction for each attempt. ## Gotchas - Agent uses Framework 7 `@EnableResilientMethods` - Boot 3 needs Spring Retry or Resilience4j. - Agent confuses `maxAttempts` with retry count - Spring Retry includes the initial call. - Agent adds `@Recover` to Resilience4j - recovery must be modeled with a fallback or caller handling. - Agent retries a self-invoked method - call through a Spring proxy. - Agent retries inside a transaction expecting a fresh transaction - move retry outside the transactional bean. - Ag...

Details

Author
rrezartprebreza
Repository
rrezartprebreza/spring-boot-skills
Created
4 months ago
Last Updated
6 days ago
Language
Java
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category