code: private <I extends Message, O extends Message> void invoke(
        ServerMethod<I, O> method, ByteString payload, long requestId, Channel channel) {
      FutureCallback<O> callback = new ServerMethodCallback<>(method, requestId, channel);
      try {
        I request = method.inputParser().parseFrom(payload);
        ListenableFuture<O> result = method.invoke(request);
        pendingRequests.put(requestId, result);
        Futures.addCallback(result, callback, responseCallbackExecutor);
      } catch (InvalidProtocolBufferException ipbe) {
        callback.onFailure(ipbe);
      }
    }
docs: Performs a single method invocation.
  
  @param method the method to invoke
  @param payload the serialized parameter received from the client
  @param requestId the unique identifier of the request
  @param channel the channel to use for responding to the client
  @param <I> the type of the method's parameter
  @param <O> the return type of the method