package registry import "time" // Watcher is an interface that returns updates // about services within the registry. type Watcher interface { // Next is a blocking call Next() (*Result, error) Stop() } // Result is returned by a call to Next on // the watcher. Actions can be create, update, delete. type Result struct { Action string Service *Service } // EventType defines registry event type. type EventType int const ( // Create is emitted when a new service is registered. Create EventType = iota // Delete is emitted when an existing service is deregsitered. Delete // Update is emitted when an existing servicec is updated. Update ) // String returns human readable event type. func (t EventType) String() string { switch t { case Create: return "create" case Delete: return "delete" case Update: return "update" default: return "unknown" } } // Event is registry event. type Event struct { // Id is registry id Id string // Type defines type of event Type EventType // Timestamp is event timestamp Timestamp time.Time // Service is registry service Service *Service }