private EventEntry(Serializer serializer, DomainEventMessage event) { this.eventIdentifier = event.getIdentifier(); Class<?> serializationTarget = String.class; if (serializer.canSerializeTo(DBObject.class)) { serializationTarget = DBObject.class; } SerializedObject serializedPayloadObject = serializePayload(event, serializer, serializationTarget); SerializedObject serializedMetaDataObject = serializeMetaData(event, serializer, serializationTarget); this.serializedPayload = serializedPayloadObject.getData(); this.payloadType = serializedPayloadObject.getType().getName(); this.payloadRevision = serializedPayloadObject.getType().getRevision(); this.serializedMetaData = serializedMetaDataObject.getData(); this.sequenceNumber = event.getSequenceNumber(); this.timestamp = event.getTimestamp().toEpochMilli(); }