code: func NewBroker(opts ...broker.Option) broker.Broker {
  	options := broker.Options{
  		Context: context.Background(),
  	}
  
  	for _, o := range opts {
  		o(&options)
  	}
  
  	// retrieve project id
  	prjID, _ := options.Context.Value(projectIDKey{}).(string)
  	// retrieve client opts
  	cOpts, _ := options.Context.Value(clientOptionKey{}).([]option.ClientOption)
  
  	// create pubsub client
  	c, err := pubsub.NewClient(context.Background(), prjID, cOpts...)
  	if err != nil {
  		panic(err.Error())
  	}
  
  	return &pubsubBroker{
  		client:  c,
  		options: options,
  	}
  }
docs: // NewBroker creates a new google pubsub broker