Simple API for sending messages to recipients.
MessageService
send(String, String)
- takes a message and a recipient, e.g.send(String, String, Map)
- takes a message, a recipient and additional data useful for the underlying implementation to process and/or send the messageResult<T>
getMessage():T
- should return a serialized form of the sent message