Understanding the messaging domains

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 with a message provider to send and receive messages.

In a messaging system, we have producers and consumers. The producer sends out the messages and the consumer consumes the messages. The producer doesn't necessarily know whether the messages have been consumed. This is to ensure the reliability of the system. The consumer might not necessarily exist at the time the message is produced and when the consumer comes up it consumes the message. Also, if the consumer crashes for some reason while it is processing the message, when it comes back, the message will still be there for it to process. If we have multiple consumers waiting for messages, it makes sense to drop the messages into a queue and let the consumers process the messages independently. Messaging systems also have publishers and subscribers. Publishers publish messages on a topic and subscribers listen to specific topics for messages. Publishers are unaware of subscribers. 

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset