public static ClientMessage EncodeIMapBatchInvalidationEvent(ICollection <IData> keys, ICollection <Guid> sourceUuids, ICollection <Guid> partitionUuids, ICollection <long> sequences)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[EventIMapBatchInvalidationInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, EventIMapBatchInvalidationMessageType);
            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.PartitionId, -1);
            clientMessage.Append(initialFrame);
            clientMessage.Flags |= ClientMessageFlags.Event;
            ListMultiFrameCodec.Encode(clientMessage, keys, DataCodec.Encode);
            ListUUIDCodec.Encode(clientMessage, sourceUuids);
            ListUUIDCodec.Encode(clientMessage, partitionUuids);
            ListLongCodec.Encode(clientMessage, sequences);
            return(clientMessage);
        }