||This is the main Retry SPI.
||The RetryContext is used to store any data which carries over from
attempt to attempt such as response messages.
||This interface is a callback that allows actions to be performed after each retry attempt,
such as firing notifications, logging, etc.
||A RetryPolicy takes some action each time an exception occurs and returns a
which indicates whether the policy is exhausted or should continue to retry.
||A RetryPolicyTemplate creates a new
RetryPolicy instance each time the retry goes into effect,
thereby resetting any state the policy may have (counters, etc.)
RetryNotifier may be set in order to take action upon each retry attempt.