code: func (fw *Framework) NewConnector(ctx context.Context, servers func() ([]srvcache.Server, error), name string, logger *log.Entry) (conn Connector, err error) {
  	if name == "" {
  		name = fw.Config.Identity
  	}
  
  	conn = &Connection{
  		name:              name,
  		servers:           servers,
  		logger:            logger.WithField("connection", name),
  		choria:            fw,
  		config:            fw.Config,
  		subscriptions:     make(map[string]*nats.Subscription),
  		chanSubscriptions: make(map[string]*channelSubscription),
  		outbox:            make(chan *nats.Msg, 1000),
  	}
  
  	err = conn.Connect(ctx)
  
  	return conn, err
  }
docs: // NewConnector creates a new NATS connector
  //
  // It will attempt to connect to the given servers and will keep trying till it manages to do so