Abstraction for exponential and custom retry strategies for failed operations