code: func (c *RPCClient) Join(addrs []string, replay bool) (int, error) {
  	header := requestHeader{
  		Command: joinCommand,
  		Seq:     c.getSeq(),
  	}
  	req := joinRequest{
  		Existing: addrs,
  		Replay:   replay,
  	}
  	var resp joinResponse
  
  	err := c.genericRPC(&header, &req, &resp)
  	return int(resp.Num), err
  }
docs: // Join is used to instruct the agent to attempt a join