gitee.com/liuxuezhan/go-micro-v1.18.0@v1.0.0/sync/leader/leader.go (about) 1 // Package leader provides leader election 2 package leader 3 4 // Leader provides leadership election 5 type Leader interface { 6 // elect leader 7 Elect(id string, opts ...ElectOption) (Elected, error) 8 // follow the leader 9 Follow() chan string 10 } 11 12 type Elected interface { 13 // id of leader 14 Id() string 15 // seek re-election 16 Reelect() error 17 // resign leadership 18 Resign() error 19 // observe leadership revocation 20 Revoked() chan bool 21 } 22 23 type Option func(o *Options) 24 25 type ElectOption func(o *ElectOptions)