Fundamentals of a messaging system
When talking about messages and messaging systems, there are four fundamental elements to take in consideration, these are as follows:
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 immediately or at a later time (asynchronously)
The delivery of the message, which can happen directly or via a broker
In the sections that will follow, we are going to formalize these aspects in order to provide a base for our later discussions.
One-way and request/reply patterns
The most fundamental aspect in a messaging system is the direction of the communication, which often also determines its semantics.
The most simple communication pattern is when the message is pushed, one-way from a source to a destination, this is a trivial situation, and it doesn't need many explanations.
A typical example of one-way communication...