code: func (n *Node) Run() error {
  	go n.receiveAdvertisements()
  	go n.reportStatus()
  	go n.checkConfig()
  
  	for n.state() != seesaw.HAShutdown {
  		if err := n.runOnce(); err != nil {
  			return err
  		}
  	}
  	return nil
  }
docs: // Run sends and receives advertisements, changes this Node's state in response to incoming
  // advertisements, and periodically notifies the engine of the current state. Run does not return
  // until Shutdown is called or an unrecoverable error occurs.