Message Oriented Architecture Patterns

In today’s digital world, message-orientated architecture patterns have become the de facto standard for integration between applications and services. Message-oriented architecture is a model where the application components communicate with each other based on the messages they send to each other.

There are different types of message-oriented architectures available — which one you choose will depend on your specific requirements and needs.

What is Message Oriented Architecture?

Message Oriented Architecture is a communication paradigm that allows the components of software applications to communicate with each other in terms of messages. The sender and receiver are loosely coupled and therefore, they can operate independently.

A message-oriented architecture is a style of interaction based on the following principles:

  • A message is an autonomous communication between components.
  • There are no direct links between components, so they are loosely coupled.
  • The components interact via a messaging system that ensures delivery and supports routing.
  • If a component doesn’t respond, the messaging system executes predefined error handling procedures.

Features of Message Oriented Architecture

Consumers and producers are separated by messages.  These messages are simply data.  They could be a binary serialized blob of data that a producer needs to be able to understand how to deserialize (often limiting producer/consumer to the same platform), or the message could be in the form of XML; where the consumer need only know how to process XML (not limiting consumer/producer to the same platform).

Messages can be sent and received on any platform.  Much in the same way an HTML page can be downloaded and viewed on any platform.  There are degrees to which a message-oriented system can support multiplatform (see above w.r.t. binary serialization); but the architecture itself imposes no real platform specifics.

Consumers give messages to a broker, aggregator, or queue of some sort and that message is processed and delivered asynchronously.  The consumer is free to go about its business before effectively before the message has even left the broker.  Of course when consumers and producers and living in the same memory space using certain types of aggregators, this may not be the case; but typical message-oriented architectures use middleware that processes messages asynchronously.

Related:

Message Oriented Communication in Distributed SystemMessage Oriented Communication in Distributed Computing
What is Message Oriented Communication?What is Message Oriented Middleware?
What are Message Oriented Middleware Examples?What is Message Oriented Architecture?