code: func (a *Remote) SendRequest(ctx context.Context, serverID, reqRoute string, v interface{}) (*protos.Response, error) {
  	r, err := route.Decode(reqRoute)
  	if err != nil {
  		return nil, err
  	}
  	payload, err := util.SerializeOrRaw(a.serializer, v)
  	if err != nil {
  		return nil, err
  	}
  	msg := &message.Message{
  		Route: reqRoute,
  		Data:  payload,
  	}
  	server, err := a.serviceDiscovery.GetServer(serverID)
  	if err != nil {
  		return nil, err
  	}
  	return a.rpcClient.Call(ctx, protos.RPCType_User, r, nil, msg, server)
  }
docs: // SendRequest sends a request to a server