0

I'm getting confused to understand below terms

Message broker: Its a application which is having one centralized place to keep messages for transmission / routing.

AMQP: Its a an protocol (application) which is basically implemented by message broker applications.

MOM: Its a client application to receive and send messages to different applications.

JMS: Its also client level application which is extended from MOM.

Please correct if my understating is wrong.

Tim
  • 69
  • 7

1 Answers1

2

MOM is generally a higher-level concept used to describe architecture and overall design. Message-Oriented-Middleware-- very similar to EDA-- Event Driven Architecture.

Message Broker: Correct, this is the process that receives messages from producers and distributes them to consumers-- in other words brokering messages between applications.

AMQP: Is a wire protocol that is used by the broker and clients to agree on how to send messages between each other and support various features-- timestamps, expiration, transactions, etc.

JMS: Is a Java API standard for applications and brokers to adhere to. It is a thin API-only specification and not a wire protocol. JMS-compatible brokers, such as ActiveMQ, IBM MQ, etc. implement wire protocols that support the JMS API specification.

To put it all together:

An organization may adopt a Message Oriented Middleware (MOM) in order to decouple applications at runtime. This architecture will be achieved by using JMS-compatible message brokers and JMS-compatible clients that are communicating under the covers using the AMQP wire protocol.

Matt Pavlovich
  • 4,087
  • 1
  • 9
  • 17
  • so MOM is also kind of API which is used to exchange messages between two applications ? Is it correct ? Can you share more about MOM and any example where it can be used ? – Tim Jun 29 '21 at 16:03
  • MOM is a high-level and generic term, not a specific API. FWIW-- 'Event Driven Architecture' (aka EDA) is the more modern term that is used in place of MOM these days. ref: https://en.wikipedia.org/wiki/Message-oriented_middleware – Matt Pavlovich Jun 29 '21 at 18:31