code: public static <T> ComposableFuture<T> withTimeout(final ComposableFuture<T> future, final long duration,
                                                      final TimeUnit unit) {
      return future.withTimeout(SchedulerServiceHolder.INSTANCE, duration, unit);
    }
docs: adds a time cap to the provided future.
  if response do not arrive after the specified time a TimeoutException is returned from the returned future.
  
  @param future   the source future
  @param duration time duration before emitting a timeout
  @param unit     the duration time unit
  @param <T>      the future type
  @return a new future with a timeout