Uses spring-retry to perform stateless or stateful retry.
Stateless retry means the retries are performed internally
by the RetryTemplate; stateful retry means the
exception is thrown but state is maintained to support
the retry policies. Stateful retry requires a
RetryStateGenerator.