public interface MessageMonitor<T extends Message<?>>
Specifies a mechanism to monitor message processing. When a message is supplied to
a message monitor it returns a callback which should be used to notify the message monitor
of the result of the processing of the event.
For example, a message monitor can track various things like message processing times, failure and success rates and
occurred exceptions. It also can gather information contained in messages headers like timestamps and tracers