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.

@FunctionalInterface public interface LeaderElectionStrategy
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 selection
  • FIRST_JOINED - First member to join
  • ROUND_ROBIN - Rotating leadership
  • invalid reference
    #CAPABILITY_BASED
    - Best matching capabilities

Custom Strategy Example


 LeaderElectionStrategy custom = members ->
     members.stream()
         .max(Comparator.comparing(a -> a.getCapabilities().size()))
         .orElse(null);
 
  • Field Details

  • Method Details

    • elect

      Agent elect(List<Agent> members)
      Selects a leader from the given members.
      Parameters:
      members - list of candidate members
      Returns:
      elected leader, or null if no suitable leader found
    • electOptional

      default Optional<Agent> electOptional(List<Agent> members)
      Selects a leader, returning Optional.
      Parameters:
      members - list of candidate members
      Returns:
      elected leader