|Page maturity |
This page has maturity level 4 (mature)
|Document type:||Generic Service||Owner:|
|This service handles transport, storage and delivery of messages between senders and recipients.|
This service handles transport, storage and delivery of chunks of digital data, or "messages", between parties, called senders and recipients. The parties involved may be human users, digital systems, or even the digital equivalent of a mailboxes of which it is not known in advance who or what will receive the message. Any consumer of the Message Handling service may be a sender, a recipient, or both. A message may be directed at a single recipient or multiple recipients, and the message may be delivered (near-) realtime or asynchronously. A message can most always be thought of to consist of two different sets of information:
- Message header: this contains the information necessary to route and deliver the message. A message header is analogous to the information printed on the outside of a letter (to, from, priority of message etc.) The message header may be invisible/inaccessible to the consumers of the Message Handling service.
- Message body: this contains the data transmitted to the intended recipient(s). The semantics of the message body data must be known to the intended recipient(s).
Important aspects of a Message Handling service are:
- the sender does not need to be in direct contact with the recipient(s); instead direct contact with the Message Handling service is the only requirement;
- if any routing of the message is required, it is handled mainly or fully by the service;
the service may provide acknowledging of the message's reception, or not ("fire and forget").
Three common forms of Message Handling services are:
- e-mail (since MIT's CTSS MAIL, 1965);
- direct messaging or instant messaging (such as SMS, WhatsApp, IRC);
- Enterprise Service Bus (ESB).
Generic Pattern realizing this Generic Service
The following Generic Pattern realizes this Generic Service:
Message Handling (This Pattern accepts messages from senders, and then handles transport, storage, and delivery to recipients.)
Applied versions of this Generic Service
The following variants of this service have been defined: