cluster

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 26, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FilterFunc

type FilterFunc func(replica Replica) bool

func AvailableRoleFilter

func AvailableRoleFilter(role domain.Role) FilterFunc

func HostFilter

func HostFilter(host string) FilterFunc

func IdFilter

func IdFilter(id uuid.UUID) FilterFunc

func NameFilter

func NameFilter(name string) FilterFunc

func NotRoleFilter

func NotRoleFilter(role domain.Role) FilterFunc

func RoleFilter

func RoleFilter(role domain.Role) FilterFunc

func StatusFilter

func StatusFilter(status domain.Status) FilterFunc

type Manager

type Manager interface {
	OnChangeMaster() emitter.Emitter[Replica]
	OnMasterCandidateConnect() emitter.Emitter[Peer]
	OnMasterDisconnection() emitter.Emitter[Peer]
	OnAddPeer() emitter.Emitter[Peer]
	OnDeletingPeer() emitter.Emitter[Peer]
	OnClusterReady() emitter.Emitter[set.Set[Replica]]
	OnClusterSick() emitter.Emitter[set.Set[Replica]]

	Me() Me
	Master() Replica
	Slaves() set.Set[Replica]
	AddPeer(Peer) error
	RemovePeer(Peer) error
	AllReplicas() set.Set[Replica]
	AllPeers() set.Set[Peer]
	Filter(FilterFunc) set.Set[Replica]
	GetPeerHosts() set.Set[string]
}

type Me

type Me interface {
	Replica

	OnChangeScore() emitter.Emitter[Me]
	GetTimeStart() time.Time
	SetScore(float32)
	GetMeta() *domain.Meta
	GetState() *domain.State
	AddRoles(set.Set[domain.Role])
	AddRole(domain.Role)
	RemoveRoles(set.Set[domain.Role])
	RemoveRole(domain.Role)
}

type Peer

type Peer interface {
	runner.Process
	Replica

	OnChangeStatus() emitter.Emitter[Peer]
	OnChangeAvailableRoles() emitter.Emitter[Peer]
	GetStatus() domain.Status
	GetGrpcConnection() (grpc.ClientConnInterface, error)
}

type Replica

type Replica interface {
	OnChangeRole() emitter.Emitter[Replica]
	GetId() uuid.UUID
	GetHost() string
	GetName() string
	GetUptime() time.Duration
	GetScore() float32
	GetResource() *linker.Linker[resource.Type, *resource.Resource]
	GetAvailableRoles() set.Set[domain.Role]
	GetRoles() set.Set[domain.Role]
	IsMe() bool
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL