class
Movie::Cluster::MembershipCoordinator
- Movie::Cluster::MembershipCoordinator
- Reference
- Object
Overview
Owns membership, reachability, revisions, and transition event emission. Network protocol scheduling remains in ClusterExtension.
Defined in:
movie/cluster/membership.crConstructors
Instance Method Summary
- #active_members : Array(Member)
- #advance_departures(&can_advance : Member -> Bool) : Array(UniqueAddress)
- #all_members : Array(Member)
- #apply_departure(target : UniqueAddress, status : MemberStatus) : Bool
- #check_reachability(peers : Array(Member), timeout_span : Time::Span) : Nil
- #converged?(seen_digests : Hash(UniqueAddress, String)) : Bool
- #departure_coordinator? : Bool
- #digest : String
- #initialize_self(status : MemberStatus) : Nil
- #known_active?(sender : UniqueAddress) : Bool
- #local_leader? : Bool
- #mark_reachable(sender : UniqueAddress) : Nil
- #member(unique_address : UniqueAddress) : Member | Nil
- #merge(records : Enumerable(Member)) : Int32
-
#merge_gossip(records : Enumerable(Member), sender : UniqueAddress) : Int32
Gossip may relay unchanged records, but only the locally recognized leader may author lifecycle changes.
- #participating? : Bool
- #promote_joining_if_leader : Nil
- #self_member : Member
- #self_unique_address : UniqueAddress
- #snapshot : ClusterSnapshot
- #subscribe(subscriber : Movie::ActorRef(ClusterEvent), replay_state : Bool) : Nil
- #subscriber_count : Int32
- #unsubscribe(subscriber : Movie::ActorRef(ClusterEvent)) : Nil
- #up? : Bool
Constructor Detail
def self.new(self_unique_address : UniqueAddress, roles : Array(String), capacity : Int32, telemetry : ClusterTelemetry)
#
Instance Method Detail
Gossip may relay unchanged records, but only the locally recognized leader may author lifecycle changes. Independently formed seed members are the sole exception: they authenticate their own initial Up record.