Storing IMessage and ITopic

Sorry @prasoonSolace ,
I somehow missed your response. Have you considered spinning up a broker next to your application (on the same host)?
That way you can always send and receive messages to/from your local broker.
To communicate with other systems, you can then mesh that broker with other brokers.

Alternatively, if that is not possible, feel free to define your own file-format and simply store the content of the message in whatever format you prefer… you could make your own serialisable representation of your data. Then whenever you are connected/ready to send, simply put that data/container in the body of your message.
Makes sense?

If not, please provide a bit more detail around the use case and I may be able to give further advise.