package registry // The registry provides an interface for service discovery // and an abstraction over varying implementations // {consul, etcd, zookeeper, ...}. type Registry interface { Name() string //return registry name Init(...RegistryOption) error //init registry Register(*Service, ...RegisterOption) error //register service Deregister(*Service, ...DeregisterOption) error //deregister service GetService(string, ...GetOption) ([]*Service, error) //get service list Watch(...WatchOption) (Watcher, error) //watch service }