MessageImpl is composed of many fine-grained objects
such as MessageId, Timestamp, Priority etc, which add
to the streaming overhead. Since a message may be
serialized many times during its lifetime it is important
to minimize this overhead.
The proposal is to remove the fine-grained objects and to
make the MessageImpl implementation more compact
The other option is to always compress the body before
sending the message to the server.