code: func New(rawurl string, heartbeat time.Duration, ttl time.Duration, clusterOpts map[string]string) (Backend, error) {
  	scheme, uri := parse(rawurl)
  	if backend, exists := backends[scheme]; exists {
  		logrus.WithFields(logrus.Fields{"name": scheme, "uri": uri}).Debugf("Initializing discovery service")
  		err := backend.Initialize(uri, heartbeat, ttl, clusterOpts)
  		return backend, err
  	}
  
  	return nil, ErrNotSupported
  }
docs: // New returns a new Discovery given a URL, heartbeat and ttl settings.
  // Returns an error if the URL scheme is not supported.