Given an operation that produces a T, returns a Future containing the result of T, unless an exception is thrown, in which case the operation will be retried after _delay_ time, if there are more possible retries, which is configured through the _retries_ parameter.
Given an operation that produces a T, returns a Future containing the result of T, unless an exception is thrown, in which case the operation will be retried after _delay_ time, if there are more possible retries, which is configured through the _retries_ parameter. If the operation does not succeed and there is no retries left, the resulting Future will contain the last failure.