private void SendCurrentClusterState(IActorRef receiver)
{
var unreachable = _latestGossip.Overview.Reachability.AllUnreachableOrTerminated
.Where(node => node != _selfUniqueAddress)
.Select(_latestGossip.GetMember)
.ToImmutableHashSet();
var state = new ClusterEvent.CurrentClusterState(
_latestGossip.Members,
unreachable,
_latestGossip.SeenBy.Select(s => s.Address).ToImmutableHashSet(),
_latestGossip.Leader(_selfUniqueAddress) == null ? null : _latestGossip.Leader(_selfUniqueAddress).Address,
_latestGossip.AllRoles.ToImmutableDictionary(r => r, r =>
{
var leader = _latestGossip.RoleLeader(r, _selfUniqueAddress);
return leader == null ? null : leader.Address;
}));
receiver.Tell(state);
}