@startuml hide empty description [*] ---> UNSUBSCRIBE UNSUBSCRIBE ---> JOINING JOINING ---> STABLE JOINING ---> RECONCILE_ASSIGNMENT JOINING ---> LEAVINGstate RECONCILIATION_LOOP { state JOINING {} state STABLE {} state RECONCILE_ASSIGNMENT {} state ACK_ASSIGNMENT {} } JOINING ---> FENCEDSTABLE JOINING ---> FATALSTABLE ---> RECONCILE_ASSIGNMENT STABLE ---> LEAVING STABLE ---> FENCED STABLE ---> FATAL RECONCILE_ASSIGNMENT ---> ACK_ASSIGNMENT RECONCILE_ASSIGNMENT ---> LEAVING RECONCILEACK_ASSIGNMENT ---> FENCED RECONCILE_ASSIGNMENT [*] ---> FATALUNSUBSCRIBE ACK_ASSIGNMENT UNSUBSCRIBE ---> STABLEJOINING ACKRECONCILIATION_ASSIGNMENT LOOP ---> LEAVING ACKRECONCILIATION_ASSIGNMENT LOOP ---> FENCED ACKRECONCILIATION_ASSIGNMENT LOOP ---> FATAL FENCED ---> JOINING LEAVING ---> UNSUBSCRIBE FATAL ---> [*] @enduml |