Package com.tnsai.agents.groups
Interface LeaderElectionStrategy
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
Strategy for electing a leader among group members.
Leader election strategies determine how a group selects a coordinator or primary agent when needed for coordination.
Built-in Strategies
RANDOM- Random selectionFIRST_JOINED- First member to joinROUND_ROBIN- Rotating leadership-
- Best matching capabilities
invalid reference
#CAPABILITY_BASED
Custom Strategy Example
LeaderElectionStrategy custom = members ->
members.stream()
.max(Comparator.comparing(a -> a.getCapabilities().size()))
.orElse(null);
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final LeaderElectionStrategyFirst joined member becomes leader.static final LeaderElectionStrategyLast joined member becomes leader.static final LeaderElectionStrategyNo election - returns null.static final LeaderElectionStrategyRandom selection strategy.static final LeaderElectionStrategySelect leader with most roles (and thus most capabilities).static final LeaderElectionStrategyRound-robin leadership rotation. -
Method Summary
-
Field Details
-
RANDOM
Random selection strategy. -
FIRST_JOINED
First joined member becomes leader. -
LAST_JOINED
Last joined member becomes leader. -
ROUND_ROBIN
Round-robin leadership rotation. State is managed externally by the group. -
ROLE_BASED
Select leader with most roles (and thus most capabilities). -
NONE
No election - returns null.
-
-
Method Details
-
elect
Selects a leader from the given members.- Parameters:
members- list of candidate members- Returns:
- elected leader, or null if no suitable leader found
-
electOptional
Selects a leader, returning Optional.- Parameters:
members- list of candidate members- Returns:
- elected leader
-