difference between AMQP, MOM, JMS and Message broker?

773 Views Asked by At

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.

1

There are 1 best solutions below

2
Matt Pavlovich On

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.