Fundamentals of a messaging system
When talking about messages and messaging systems, there are four fundamental elements to take into consideration:
- The direction of the communication, which can be one-way only or a request/reply exchange
- The purpose of the message, which also determines its content
- The timing of the message, which can be sent and received in-context (synchronously) or out-of-context (asynchronously)
- The delivery of the message, which can happen directly or via a broker
In the sections that follow, we are going to formalize these aspects to provide a base for our later discussions.
One way versus request/reply patterns
The most fundamental aspect in a messaging system is the direction of the communication, which often also determines its semantics.
The simplest communication pattern is when the message is pushed one way from a source to a destination; this is a trivial...