code: func NewServer(options ...Option) *Server {
  	s := &Server{
  		subscriptions: make(map[string]map[string]query.Query),
  	}
  	s.BaseService = *common.NewBaseService(nil, "PubSub", s)
  
  	for _, option := range options {
  		option(s)
  	}
  
  	// if BufferCapacity option was not set, the channel is unbuffered
  	s.cmds = make(chan cmd, s.cmdsCap)
  
  	return s
  }
docs: // NewServer returns a new server. See the commentary on the Option functions
  // for a detailed description of how to configure buffering. If no options are
  // provided, the resulting server's queue is unbuffered.