code: @SafeVarargs
      public static <T> Future<T> firstSuccess(Future<T>... fts) {
          Future<T> future = Future.future();
          Stream.of(fts)
                .forEach(f->f.peek(r->future.complete(r)));
          Future<T> all = allOf(fts).recover(e->{ future.completeExceptionally(e); return null;});
          return future;
  
        }
docs: Select the first Future to return with a successful result
  
  <pre>
  {@code
  Future<Integer> ft = Future.future();
  Future<Integer> result = Future.firstSuccess(Future.of(()->1),ft);
  
  ft.complete(10);
  result.getValue() //1
  }
  </pre>
  
  @param fts Futures to race
  @return First Future to return with a result