HOME

TheInfoList




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 system Distributed computing is a field of computer science that studies distributed systems. A ''distributed ...
(MOM) but are typically not a replacement for traditional middleware like MOM and
remote procedure call#REDIRECT 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 ...
(RPC).


Overview

A message broker is an
architectural pattern An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture Software architecture refers to the fundamental structures of a software system A software system is a system of intercommunicating ...
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 behaviors. They are contrasted with function ...
, 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 Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of comp ...
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 The term Web service (WS) is either: * a service offered by an electronic device to another electronic device, communicating with each other via the World Wide Web The World Wide Web (WWW), commonly known as the Web, is an information ...
s 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 message passing, messages, called publishers, do not program the messages to be sent directly to specific receivers, called subscribers, but instead categor ...
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 A bus (contracted from omnibus, with variants multibus, motorbus, autobus, etc.) is a road vehicle A vehicle (from la, vehiculum) is a machine A machine is a man-made device that uses power to apply forces and control movement t ...
. 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 ActiveMQ is an Open-source software, open source message broker written in Java together with a full Java Message Service (JMS) client. It provides "Enterprise Features" which in this case means fostering the communication from more than one ...

Apache Artemis
*
Apache Kafka Apache Kafka is a framework implementation of a software bus using stream processing, stream-processing. It is an Open-source software, open-source software platform developed by the Apache Software Foundation written in Scala (programming language ...
*
Apache Qpid Apache Qpid is an Open-source software, open-source messaging system which implements the Advanced Message Queuing Protocol (AMQP). It provides transaction management, queuing, distribution, security, management, clustering, Federation (informatio ...

Apache Pulsar
*Cloverleaf (Enovation Lifeline - NL) *Comverse Message Broker (
Comverse Technology Comverse Technology, Inc., often referred to as simply Comverse, was a technology company located in Woodbury, Nassau County, New York, Woodbury, New York in the United States, that developed and marketed telecommunications software. The company ...
) *Eclipse Mosquitto MQTT Broker (
Eclipse Foundation The Eclipse Foundation AISBL is an independent, Canada-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 The European Union ( ...
) * Enduro/X Transactional Message Queue (TMQ) *Financial Fusion Message Broker (
Sybase Sybase, Inc. was an enterprise software and services company that produced software to manage and analyze information in relational databases, with facilities located in California and Massachusetts. Sybase was acquired by SAP AG, SAP in 2010 ...
) *
Fuse Message Broker Red Hat, Inc. is an American Multinational corporation, multinational 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 off ...
(enterprise ActiveMQ) *
Gearman Gearman is an open-source software, open-source application framework designed to distribute appropriate computer tasks to multiple computers, so large tasks can be done more quickly. In some cases, Load balancing (computing), load balancing rather ...
*Google Clou
Pub/Sub
(
Google Google LLC is an American multinational Multinational may refer to: * Multinational corporation, a corporate organization operating in multiple countries * Multinational force, a military body from multiple countries * Multinational stat ...

Google
) *HiveM
HiveMQ MQTT Broker
*EMQ
EMQX MQTT Broker
*
HornetQ HornetQ is an open-source software, open-source asynchronous messaging project from JBoss (company), JBoss. It is an example of Message-oriented middleware. HornetQ is an open source project to build a multi-protocol, embeddable, very high perform ...
(
Red Hat Red Hat, Inc. is an American IBM subsidiary software company A software company is a company whose primary products are various forms of software, software technology, distribution, and software product development. They make up the softwar ...
) (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 IBM WebSphere, WebSphere products. In April 2014, it was ...
*
JBoss Messaging JBoss Messaging is the JBoss enterprise asynchronous messaging system. It supersedes JBoss MQ as the default Java Message Service (JMS) provider in JBoss AS, JBoss Application Server (JBoss AS) 5. JBoss Messaging 1.0 was released on 29 March 200 ...
(
JBoss WildFly, formerly known as JBoss AS, or simply JBoss, is an application server An application server is a server that hosts applications. Application server frameworks are software framework In computer programming, a software framework is an ...
) *
JORAM Java Open Reliable Asynchronous Messaging (JORAM) is an open-source (Gnu LGPL) message broker which is certified to fully implement the Java Message ServiceThe Jakarta Messaging API (formerly Java Message Service or JMS API) is a Java Java ( i ...
* (
Microsoft Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation which produces Software, computer software, consumer electronics, personal computers, and related services. Its best-know ...

Microsoft
) *
Microsoft BizTalk Server Microsoft BizTalk Server is an inter-organizational middleware system (IOMS) that automates business processes through the use of ''adapters'' which are tailored to communicate with different software systems used in an enterprise. Created by Mi ...
(
Microsoft Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation which produces Software, computer software, consumer electronics, personal computers, and related services. Its best-know ...

Microsoft
)
MigratoryData
(a publish/subscribe
WebSockets WebSocket is a computer communications protocol A communication protocol is a system of rules that allows two or more entities of a communications system 400px, Communication system A communications system or communication system is a ...
message broker written to address the C10M problem ) * NATS ( MIT Open Source License, written in Go) * Open Message Queue *Oracle Message Broker (
Oracle Corporation Oracle Corporation is an American multinational Multinational may refer to: * Multinational corporation, a corporate organization operating in multiple countries * Multinational force, a military body from multiple countries * Multinational ...
) *
RabbitMQ RabbitMQ is an open-source message broker, 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 (computing), pl ...
(
Mozilla Public License The Mozilla Public License (MPL) is a free and open-source software Free and open-source software (FOSS) is software Software is a collection of Instruction (computer science), instructions that tell a computer how to work. This is i ...
, written in Erlang) *
Redis Redis (; Remote Dictionary Server) is an in-memory data structure store, used as a distributedDistribution may refer to: Mathematics *Distribution (mathematics) Distributions, also known as Schwartz distributions or generalized functi ...
An open source, in-memory data structure store, used as a database, cache and message broker. * (
SAP AG SAP SE () is a German multinational Multinational may refer to: * Multinational corporation, a corporate organization operating in multiple countries * Multinational force, a military body from multiple countries * Multinational state, a sove ...
) *
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 hi ...
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 Local may refer to: Geography and transportation * Local (train), a train serving local traff ...
*
Tarantool Tarantool is an In-memory database, in-memory computing platform with a flexible data schema, best used for creating high-performance applications. Two main parts of it are an in-memory database and a Lua (programming language), Lua application se ...
, a NoSQL database, with a set of
stored procedure A stored procedure (also termed proc, storp, sproc, StoPro, StoredProc, StoreProc, sp, or SP) is a subroutine In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a ...
s for message queues *
TIBCO TIBCO Software Inc. is an American business intelligence software company founded in 1997 in Palo Alto, California, Palo Alto, California. It has headquarters in Palo Alto, California, and offices in North America, Europe, Asia, the Middle Eas ...
Enterprise Message Service * WSO2 Message Broker *
ZeroMQ ZeroMQ (also spelled ØMQ, 0MQ or ZMQ) is an asynchronous message passing, messaging library, aimed at use in distributed application, distributed or concurrent applications. It provides a message queue, but unlike message-oriented middleware, a ...


See also

*
Publish–subscribe pattern In software architecture, publish–subscribe is a messaging pattern where senders of message passing, messages, called publishers, do not program the messages to be sent directly to specific receivers, called subscribers, but instead categor ...
*
MQTT MQTT is a lightweight, Publish–subscribe pattern, publish-subscribe network Communication protocol, protocol that transports messages between devices. The protocol usually runs over TCP/IP, however, any network protocol that provides ordered, L ...
* Comparison of business integration software *
Message-oriented middleware Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed system Distributed computing is a field of computer science that studies distributed systems. A ''distributed ...


References

Middleware Software design patterns {{network-software-stub