in pekko-sample-cluster-docker-compose-scala/src/main/scala/com/example/ClusterListener.scala [11:34]
def apply(): Behavior[ClusterEvent.ClusterDomainEvent] =
Behaviors.setup { ctx =>
ctx.log.debug("starting up cluster listener...")
Cluster(ctx.system).subscriptions ! Subscribe(ctx.self, classOf[ClusterEvent.ClusterDomainEvent])
Behaviors.receiveMessagePartial {
case MemberUp(member) =>
ctx.log.debug("Member is Up: {}", member.address)
Behaviors.same
case UnreachableMember(member) =>
ctx.log.debug("Member detected as unreachable: {}", member)
Behaviors.same
case MemberRemoved(member, previousStatus) =>
ctx.log.debug("Member is Removed: {} after {}",
member.address, previousStatus)
Behaviors.same
case LeaderChanged(member) =>
ctx.log.info("Leader changed: " + member)
Behaviors.same
case any: MemberEvent =>
ctx.log.info("Member Event: " + any.toString)
Behaviors.same
}
}