code: public <O extends Message> EnvelopeFuture<O> newProvisionalResponse(
        ClientMethod<O> clientMethod) {
      long requestId = ThreadLocalRandom.current().nextLong();
      EnvelopeFuture<O> outputFuture = new EnvelopeFuture<>(requestId, clientMethod,
          new Cancel(requestId), clientLogger);
      inFlightRequests.put(requestId, outputFuture);
      return outputFuture;
    }
docs: Returns a new provisional handle on the future result of an RPC
  invocation.
  <p/>
  <p>This handler will keep track of the returned object and set its
  response when it is received from the server.</p>
  
  @param clientMethod the method that is intended to be invoked.