code: public long sendRpc(ByteBuffer message, RpcResponseCallback callback) {
      if (logger.isTraceEnabled()) {
        logger.trace("Sending RPC to {}", getRemoteAddress(channel));
      }
  
      long requestId = requestId();
      handler.addRpcRequest(requestId, callback);
  
      RpcChannelListener listener = new RpcChannelListener(requestId, callback);
      channel.writeAndFlush(new RpcRequest(requestId, new NioManagedBuffer(message)))
        .addListener(listener);
  
      return requestId;
    }
docs: Sends an opaque message to the RpcHandler on the server-side. The callback will be invoked
  with the server's response or upon any failure.
  
  @param message The message to send.
  @param callback Callback to handle the RPC's reply.
  @return The RPC's id.