This method is called whenever a new message is received.
Messages are guaranteed to be delivered in order and from the same thread for a single consumer
This method will only be called once for each message, unless either application or broker crashes.
Application is responsible of handling any exception that could be thrown while processing the message.
reader - the Reader object from where the message was received