code: func Init(backendAddress, advertiseAddress string, clusterOpts map[string]string) (Reloader, error) {
  	heartbeat, backend, err := parseDiscoveryOptions(backendAddress, clusterOpts)
  	if err != nil {
  		return nil, err
  	}
  
  	reloader := &daemonDiscoveryReloader{
  		backend: backend,
  		ticker:  time.NewTicker(heartbeat),
  		term:    make(chan bool),
  		readyCh: make(chan struct{}),
  	}
  	// We call Register() on the discovery backend in a loop for the whole lifetime of the daemon,
  	// but we never actually Watch() for nodes appearing and disappearing for the moment.
  	go reloader.advertiseHeartbeat(advertiseAddress)
  	return reloader, nil
  }
docs: // Init initializes the nodes discovery subsystem by connecting to the specified backend
  // and starts a registration loop to advertise the current node under the specified address.