DomainEventMessage implementation that is optimized to cope with serialized Payload and MetaData. The Payload and MetaData will only be deserialized when requested. This means that loaded event for which there is no handler will never be deserialized.
This implementation is Serializable as per Java specification. Both MetaData and Payload are deserialized prior to being written to the OutputStream.
@param < T> The type of payload contained in this message
@author Allard Buijze
@author Frank Versnel
@since 2.0