Versions in this module Expand all Collapse all v0 v0.0.2 Feb 29, 2020 v0.0.1 Feb 15, 2020 Changes in this version + const LeaderChangedEventPath + const MemberChangedEventPath + const PathHeartbeat + const PathLeader + const PathMember + var NilMember = Member + type Cluster struct + func (cluster *Cluster) GetAliveMemberIDs() []string + func (cluster *Cluster) GetAliveMembers() []*Member + func (cluster *Cluster) GetMember(id string) *Member + func (cluster *Cluster) GetSortedMembers() []string + func (cluster *Cluster) IsLeader() bool + func (cluster *Cluster) Leader() *Member + func (cluster *Cluster) Local() *Member + func (cluster *Cluster) Name() string + type LeaderChangedEvent struct + IsLeader bool + Leader *Member + func (event LeaderChangedEvent) Path() types.EventPath + type Manager struct + func NewManager(context common.Context) *Manager + func (manager *Manager) GetCluster() *Cluster + func (manager *Manager) IsLeaderNode() bool + func (manager *Manager) Start() + type Member struct + Name string + NodeID string + func NewMember(name string, nodeid string) *Member + func (m *Member) Heartbeat() time.Time + func (m *Member) IsAlive() bool + func (m *Member) IsLeader() bool + func (m *Member) IsLocal() bool + func (m *Member) SetAlive(alive bool) + func (m *Member) SetHeartbeat(time time.Time) + func (m *Member) SetLeader(leader bool) + func (m *Member) SetLocal(local bool) + func (m *Member) String() string + type MemberChangedEvent struct + AliveMemberIDs []string + AliveMembers []*Member + IsLeader bool + func (event MemberChangedEvent) Path() types.EventPath + type Repository interface + GetAllMembers func() (members []*Member, err error) + GetHeartbeats func(handler func(nodeid string, time time.Time)) (err error) + GetLeader func() (leader string, err error) + GetMember func(nodeID string) (member Member, err error) + HasMember func(nodeID string) (ok bool) + PutHeartbeat func(nodeID string) (err error) + PutLeader func(leader string) (err error) + PutMember func(member *Member) (err error) + func NewRepository(config common.DaemonConfig, logger log.Logger, client types.Client) Repository