A Messenger is an EXA that exists to transfer data without the use of M-communications.
There are several reasons you may decide to do this:
- Global M communications are already being used and it's not practical to send more messages that way.
- There is no EXA in place to receive a message
- Sending and receiving don't have guaranteed timings, and you don't want to be blocked sending to M. A messenger allows you to "fire and forget".
- Using T as well means a Messenger can carry twice as much as the M channel can.
- If you need to transfer files, Messengers can carry files.
- Messengers are good if you don't care particularly about the order messages are received in, although they can also be made to keep order themselves correctly with care.
- Messengers are extremely good if there is complex logic required to decide where to route the message to (e.g. navigating a file system).