docs: public void scheduleForCompletion(String requestId, CompletableFuture<Boolean> request, long time, TimeUnit unit) {
        if (request.isDone()) {
           if (trace) {
              log.tracef("Request[%s] is not scheduled because is already done", requestId);
           }
           return;
        }
  
        if (scheduledRequests.containsKey(requestId)) {
           String message = String.format("Request[%s] is not scheduled because it is already scheduled", requestId);
           log.error(message);
           throw new IllegalStateException(message);
        }
  
        if (trace) {
           log.tracef("Request[%s] being scheduled to be completed in [%d, %s]", requestId, time, unit);
        }
  
        ScheduledFuture<?> scheduledFuture = scheduledExecutorService.schedule(() -> {
           request.complete(false);
           scheduledRequests.remove(requestId);
        }, time, unit);
  
        scheduledRequests.putIfAbsent(requestId, new ScheduledRequest(request, scheduledFuture));
     }