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();
    }