The best way to design a centralized retry handler in Spring Boot is by using the Resilience4j library, which provides a clean, reusable retry mechanism for multiple API clients. You can refer to following:
- Add the Resilience4j dependency:
Here is the code showing how it is done:
- Configure retries in application.yml:
Here is the code showing how it is done:
- Centralized Retry Handler:
Here is the code showing how it is done:

- Use the service in multiple API clients:
Here is the code showing how it is done:

These approaches ensure all clients share a centralized retry configuration, reducing boilerplate and enhancing maintainability.
Hence, using the ways mentioned above, you can design a centralized retry handler in Spring Boot for multiple Gen AI APIs. clients