//Reply from Join request public void Welcome(Address joinWith, UniqueAddress from, Gossip gossip) { if (!_latestGossip.Members.IsEmpty) throw new InvalidOperationException("Welcome can only be done from an empty state"); if (!joinWith.Equals(from.Address)) { _log.Info("Ignoring welcome from [{0}] when trying to join with [{1}]", from.Address, joinWith); } else { _log.Info("Welcome from [{0}]", from.Address); _latestGossip = gossip.Seen(SelfUniqueAddress); Publish(_latestGossip); if (!from.Equals(SelfUniqueAddress)) GossipTo(from, Sender); BecomeInitialized(); } }