code: @Builder(builderMethodName = "awaitCondition",  buildMethodName = "await")
    private static boolean evaluateConditionUntilTrue(Callable<Boolean> callable, Double alpha, Integer maxRetries,
        Long maxWait, Long maxDelay, Long initialDelay) throws ExecutionException, InterruptedException {
      ExponentialBackoff exponentialBackoff = new ExponentialBackoff(alpha, maxRetries, maxWait, maxDelay, initialDelay);
      while (true) {
        try {
          if (callable.call()) {
            return true;
          }
        } catch (Throwable t) {
          throw new ExecutionException(t);
        }
        if (!exponentialBackoff.awaitNextRetryIfAvailable()) {
          return false;
        }
      }
    }
docs: Evaluate a condition until true with exponential backoff.
  @param callable Condition.
  @return true if the condition returned true.
  @throws ExecutionException if the condition throws an exception.