code: func (k *Kite) RegisterHTTPForever(kiteURL *url.URL) {
  	// Create the httpBackoffRegister that RegisterHTTPForever will
  	// use to backoff repeated register attempts.
  	httpRegisterBackOff := backoff.NewExponentialBackOff()
  	httpRegisterBackOff.InitialInterval = 30 * time.Second
  	httpRegisterBackOff.MaxInterval = 5 * time.Minute
  	httpRegisterBackOff.Multiplier = 1.7
  	httpRegisterBackOff.MaxElapsedTime = 0
  
  	register := func() error {
  		_, err := k.RegisterHTTP(kiteURL)
  		if err != nil {
  			k.Log.Error("Cannot register to Kontrol: %s Will retry after %d seconds",
  				err,
  				httpRegisterBackOff.NextBackOff()/time.Second)
  			return err
  		}
  
  		return nil
  	}
  
  	// this will retry register forever
  	err := backoff.Retry(register, httpRegisterBackOff)
  	if err != nil {
  		k.Log.Error("BackOff stopped retrying with Error '%s'", err)
  	}
  }
docs: // RegisterHTTPForever is just like RegisterHTTP however it first tries to
  // register forever until a response from kontrol is received. It's useful to
  // use it during app initializations. After the registration a reconnect is
  // automatically handled inside the RegisterHTTP method.