If a message cannot implement Provider, it can also be wrapped with this envelope to provide a unique id along with it.
A message type can implement this interface to map itself to a unique id.
A message type can implement this interface to map itself to a unique id.
If a message cannot implement this interface, it is also possible to wrap the message in Envelope.