/// <summary>
        /// Handles an invalidation.
        /// </summary>
        /// <param name="key">The invalidated key.</param>
        /// <param name="sourceClusterClientId">The identifier of the cluster client originating the event.</param>
        /// <param name="partitionGuid">???</param>
        /// <param name="sequence">The sequence.</param>
        public void Handle(IData key, Guid sourceClusterClientId, Guid partitionGuid, long sequence)
        {
            // apply invalidation if it's not originated by the cluster client (Hazelcast client)
            // running this code, because local Near Caches are invalidated immediately.
            if (!_clusterClientId.Equals(sourceClusterClientId))
            {
                // sourceClusterClientId is allowed to be null, meaning: all
                if (key == null)
                {
                    _nearCache.Clear();
                }
                else
                {
                    _nearCache.Remove(key);
                }
            }

            var partitionId = GetPartitionIdOrDefault(key);

            UpdateUuid(partitionId, partitionGuid);
            UpdateSequence(partitionId, sequence, false);
        }