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)