Let's start by looking at what we require from a messaging system and how it works at a high level. A messaging system is characterized by the following attributes:
- The message itself
- The interaction mode
- The messaging system
The message represents the business data that is used either for further processing or for persistence.
The interaction mode can be either synchronous or asynchronous. In synchronous mode, the producer of the message and the receiver system are both in sync and have to be available simultaneously. They will be tightly coupled. In asynchronous mode, however, the interacting systems are loosely coupled, which means the applications are not tied to each other over a message interaction and they aren't aware of the existence of each other. All they need is the messaging format to be defined. The applications interact...