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 Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. Message-oriented middleware is in contrast to streaming-oriented middleware where data is communicate ...
(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 computer network), which is written as if it were a ...
(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, and facilitate reuse of intermediary functions. For example, a message broker may be used to manage a workload queue or message queue 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 service A web service (WS) is either: * a service offered by an electronic device to another electronic device, communicating with each other via the Internet, or * a server running on a computer device, listening for requests at a particular port over a n ...
s to retrieve data *Respond to events or errors *Provide content and topic-based message routing using the publish–subscribe pattern 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.


Real-time semantics

Message brokers that are purpose built to achieve time-bounded communications with end-to-end predictability allow for the development of real-time systems that require execution predictability. Frequently systems with real-time requirements involve interaction with the real world (
robotics Robotics is the interdisciplinary study and practice of the design, construction, operation, and use of robots. Within mechanical engineering, robotics is the design and construction of the physical structures of robots, while in computer s ...
, vehicle automation, software-defined radio, et al.) The
Object Management Group The Object Management Group (OMG®) is a computer industry Standards Development Organization (SDO), or Voluntary Consensus Standards Body (VCSB). OMG develops enterprise integration and modeling standards for a range of technologies. Busin ...
Real-time CORBA specification provides a theoretical foundation for predictable communications technologies by levying the following requirements:
For the purposes of this specification, "end-to-end predictability" of timeliness in a fixed priority CORBA system is defined to mean: * respecting thread priorities between client and server for resolving resource contention during the processing of CORBA invocations; * bounding the duration of thread priority inversions during end-to-end processing; * bounding the latencies of operation invocations.


List of message broker software

*Amazon Web Services (AWS
Amazon MQ
*Amazon Web Services (AWS
Kinesis
*Apache ** Apache ActiveMQ
Apache Artemis
** Apache Camel ** Apache Kafka ** Apache Qpid **
Apache Thrift Thrift is an IDL (interface definition language, Interface Definition Language) and Binary protocol, binary communication protocol used for defining and creating service (systems architecture), services for programming languages. It was developed ...
** Apache Pulsar *Cloverleaf (Enovation Lifeline - NL) *Comverse Message Broker ( Comverse Technology) *Coreflu
Coreflux MQTT Broker
*Eclips
Mosquitto MQTT Broker
( Eclipse Foundation) *EMQ
EMQX MQTT Broker
* Enduro/X Transactional Message Queue (TMQ) *Financial Fusion Message Broker (
Sybase Sybase, Inc. was an enterprise software and services company. The company produced software relating to relational databases, with facilities located in California and Massachusetts. Sybase was acquired by SAP in 2010; SAP ceased using the Syba ...
) * Fuse Message Broker (enterprise ActiveMQ) * Gearman *Google Clou
Pub/Sub
(
Google Google LLC (, ) is an American multinational corporation and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
) *HiveM
HiveMQ MQTT Broker
* HornetQ (
Red Hat Red Hat, Inc. (formerly Red Hat Software, Inc.) is an American software company that provides open source software products to enterprises and is a subsidiary of IBM. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North ...
) (Now part of Apache Artemis) * IBM App Connect * IBM MQ * JBoss Messaging ( JBoss) * JORAM * Microsoft Azure Service Bus (
Microsoft Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
) * Microsoft BizTalk Server (
Microsoft Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
)
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 corporation, multinational computer technology company headquartered in Austin, Texas. Co-founded in 1977 in Santa Clara, California, by Larry Ellison, who remains executive chairman, Oracle was ...
) * ORBexpress ( OIS) ** ORBexpress written in Ada ** ORBexpress written in C# ** ORBexpress written in C++ ** ORBexpress written in
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
* RabbitMQ (
Mozilla Public License The Mozilla Public License (MPL) is a free and open-source weak copyleft license for most Mozilla Foundation software such as Firefox and Thunderbird. The MPL is developed and maintained by Mozilla, which seeks to balance the concerns of bo ...
, written in Erlang) *Redpanda (implement Apache Kafka api, written in C++) * Redis An open source, in-memory data structure store, used as a database, cache and message broker. * SAP PI (
SAP AG Sap is a fluid transported in the xylem cells (vessel elements or tracheids) or phloem sieve tube elements of a plant. These cells transport water and nutrients throughout the plant. Sap is distinct from latex, resin, or cell sap; it is a sep ...
) *SM
SMC Platform
* Solace PubSub+ *
Spread Toolkit The Spread Toolkit is a computer software package that provides a high performance group communication system that is resilient to faults across local and wide area networks. Spread functions as a unified message bus for distributed applicatio ...
* Tarantool, a NoSQL database, with a set of
stored procedure A stored procedure (also termed prc, proc, storp, sproc, StoPro, StoredProc, StoreProc, sp, or SP) is a subroutine available to applications that access a relational database management system (RDBMS). Such procedures are stored in the database d ...
s for message queues * TIBCO Enterprise Message Service * WSO2 Message Broker * ZeroMQ


See also

* Broker injection * Publish–subscribe pattern * MQTT * Comparison of business integration software *
Message-oriented middleware Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. Message-oriented middleware is in contrast to streaming-oriented middleware where data is communicate ...


References

{{reflist, 1 Message-oriented middleware Middleware Software design patterns