message broker
   HOME

TheInfoList



OR:

A message broker (also known as an integration broker or interface engine) is an intermediary computer program module that translates a message from the formal messaging protocol of the sender to the formal messaging protocol of the receiver. Message brokers are elements in telecommunication or computer networks where software applications communicate by exchanging formally-defined messages. Message brokers are a building block of message-oriented middleware (MOM) but are typically not a replacement for traditional middleware like MOM and
remote procedure call In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared network), which is coded as if it were a normal (l ...
(RPC).


Overview

A message broker is an architectural pattern for message validation, transformation, and routing. It mediates communication among applications, minimizing the mutual awareness that applications should have of each other in order to be able to exchange messages, effectively implementing decoupling.


Purpose

The primary purpose of a broker is to take incoming messages from applications and perform some action on them. Message brokers can decouple end-points, meet specific
non-functional requirements In systems engineering and requirements engineering, a non-functional requirement (NFR) is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviours. They are contrasted with fun ...
, and facilitate reuse of intermediary functions. For example, a message broker may be used to manage a workload queue or
message queue In computer science, message queues and mailboxes are software-engineering components typically used for inter-process communication (IPC), or for inter- thread communication within the same process. They use a queue for messaging – the ...
for multiple receivers, providing reliable storage, guaranteed message delivery and perhaps transaction management.


Life cycle

The following represent other examples of actions that might be handled by the broker: *Route messages to one or more destinations *Transform messages to an alternative representation *Perform message aggregation, decomposing messages into multiple messages and sending them to their destination, then recomposing the responses into one message to return to the user *Interact with an external repository to augment a message or store it *Invoke web services to retrieve data *Respond to events or errors *Provide content and topic-based message routing using the
publish–subscribe pattern In software architecture, publish–subscribe is a messaging pattern where senders of messages, called publishers, do not program the messages to be sent directly to specific receivers, called subscribers, but instead categorize published me ...
Message brokers are generally based on one of two fundamental architectures: hub-and-spoke and message bus. In the first, a central server acts as the mechanism that provides integration services, whereas with the latter, the message broker is a communication backbone or distributed service that acts on the bus. Additionally, a more scalable multi-hub approach can be used to integrate multiple brokers.


List of message broker software

*Amazon Web Services (AWS
Amazon MQ
*Amazon Web Services (AWS
Kinesis
* Apache ActiveMQ
Apache Artemis
* Apache Kafka *
Apache Qpid Apache Qpid is an open-source messaging system which implements the Advanced Message Queuing Protocol (AMQP). It provides transaction management, queuing, distribution, security, management, clustering, federation and heterogeneous multi-platfo ...

Apache Pulsar
*Cloverleaf (Enovation Lifeline - NL) *Comverse Message Broker ( Comverse Technology) *Eclipse Mosquitto MQTT Broker (
Eclipse Foundation The Eclipse Foundation AISBL is an independent, Europe-based not-for-profit corporation that acts as a steward of the Eclipse open source software development community, with legal jurisdiction in the European Union. It is an organization suppo ...
) *EMQ
EMQX MQTT Broker
*
Enduro/X Enduro/X is an open-source middleware platform for distributed transaction processing. It is built on proven APIs such as X/Open group's XATMI and XA. The platform is designed for building real-time microservices based applications with a clus ...
Transactional Message Queue (TMQ) *Financial Fusion Message Broker ( Sybase) * Fuse Message Broker (enterprise ActiveMQ) * Gearman *Google Clou
Pub/Sub
(
Google Google LLC () is an American multinational technology company focusing on search engine technology, online advertising, cloud computing, computer software, quantum computing, e-commerce, artificial intelligence, and consumer electronics. I ...
) *HiveM
HiveMQ MQTT Broker
* HornetQ (
Red Hat Red Hat, Inc. is an American software company that provides open source software products to enterprises. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North Carolina, with other offices worldwide. Red Hat has become ass ...
) (Now part of Apache Artemis) * IBM App Connect *
IBM MQ IBM MQ is a family of message-oriented middleware products that IBM launched in December 1993. It was originally called MQSeries, and was renamed ''WebSphere MQ'' in 2002 to join the suite of WebSphere products. In April 2014, it was renamed ''I ...
* JBoss Messaging (
JBoss WildFly, formerly known as JBoss AS, or simply JBoss, is an application server written by JBoss, now developed by Red Hat. WildFly is written in Java and implements the Java Platform, Enterprise Edition (Java EE) specification. It runs on multi ...
) * JORAM * Microsoft Azure Service Bus (
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washingt ...
) * Microsoft BizTalk Server (
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washingt ...
)
MigratoryData
(a publish/subscribe WebSockets message broker written to address the C10M problem ) * NATS ( MIT Open Source License, written in Go) *NanoM
MQTT Broker for IoT Edge
* Open Message Queue *Oracle Message Broker (
Oracle Corporation Oracle Corporation is an American multinational computer technology corporation headquartered in Austin, Texas. In 2020, Oracle was the third-largest software company in the world by revenue and market capitalization. The company sells da ...
) *
RabbitMQ RabbitMQ is an open-source message-broker software (sometimes called message-oriented middleware) that originally implemented the Advanced Message Queuing Protocol (AMQP) and has since been extended with a plug-in architecture to support Stre ...
( Mozilla Public License, written in Erlang) *
Redis Redis (; Remote Dictionary Server) is an in-memory data structure store, used as a distributed, in-memory key–value database, cache and message broker, with optional durability. Redis supports different kinds of abstract data structures, ...
An open source, in-memory data structure store, used as a database, cache and message broker. * SAP PI ( SAP AG) *SM
SMC Platform
*
Solace Consolation, consolement, and solace are terms referring to psychological comfort given to someone who has suffered severe, upsetting loss, such as the death of a loved one. It is typically provided by expressing shared regret for that loss and ...
PubSub+ * Spread Toolkit * Tarantool, a NoSQL database, with a set of stored procedures for message queues *
TIBCO TIBCO Software Inc. is an American business intelligence software company founded in 1997 in Palo Alto, California. It has headquarters in Palo Alto, California, and offices in North America, Europe, Asia, the Middle East, Africa and Sou ...
Enterprise Message Service * WSO2 Message Broker *
ZeroMQ ZeroMQ (also spelled ØMQ, 0MQ or ZMQ) is an asynchronous messaging library, aimed at use in distributed or concurrent applications. It provides a message queue, but unlike message-oriented middleware, a ZeroMQ system can run without a dedicate ...


See also

*
Publish–subscribe pattern In software architecture, publish–subscribe is a messaging pattern where senders of messages, called publishers, do not program the messages to be sent directly to specific receivers, called subscribers, but instead categorize published me ...
* MQTT * Comparison of business integration software * Message-oriented middleware


References

Middleware Software design patterns {{network-software-stub