Message broker is an intermediary program module which 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 networks where programs (software applications) communicate by exchanging formally-defined messages. Message brokers are a building block of Message oriented middleware.
A message broker is an architectural pattern for message validation, message transformation and message routing. It mediates communication amongst applications, minimizing the mutual awareness that applications should have of each other in order to be able to exchange messages, effectively implementing decoupling.
The purpose of a broker is to take incoming messages from applications and perform some action on them. The following are examples of actions that might be taken in by the broker:
- Route messages to one or more of many 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
Many messaging patterns (like publish–subscribe) can work without a message broker. One pattern that requires a message broker is workload queues, that is message queues that are handled by multiple receivers. Such queues must be managed, transacted, and usually stored reliably, at a single point.
List of message broker software
- Antares Enovacom
- Apache ActiveMQ
- Apache Kafka
- Apache Qpid
- Axway Integration Broker
- Automotive Message Broker
- Celery Task Queue
- Cloverleaf (E-Novation Lifeline)
- Comverse Message Broker (Comverse Technology)
- DIPS Message Broker
- e-Biz Impact (Sybase, Inc)
- eSCL Message Broker (Interface & Control Systems)
- Financial Fusion Message Broker (Sybase)
- Fuse Message Broker (enterprise ActiveMQ)
- HiveMQ (MQTT Broker)
- IBM Integration Bus
- JBoss Messaging (JBoss)
- MessageBroker - Free Middleware System (IBS Technology GmbH)
- Microsoft BizTalk Server (Microsoft)
- Microsoft Azure Service Bus (Microsoft)
- Niklas message broker by Copernicus
- Open Message Queue
- Oracle Message Broker (Oracle Corporation)
- Proteus an open source implementation by Info-Scape
- Python Message Service
- QDB (Apache License 2.0, supports message replay by timestamp)
- RabbitMQ (Mozilla Public License, written in Erlang)
- SAP PI (SAP AG)
- Sapo Broker (Portugal Telecom)
- Spread Toolkit
- Tarantool, a NoSQL database, with a set of stored procedures for message queues
- TIBCO ActiveMatrix BusinessWorks
- WSO2 Message Broker
- "Hub and Spoke [or] Zen and the Art of Message Broker Maintenance". Enterprise Integration Patterns. 2003-11-12. Retrieved 2010-10-14.
- https://github.com/otcshare/automotive-message-broker. Retrieved 2014-04-02. Missing or empty
- "Sybase.com". Sybase.com. Retrieved 2010-10-14.
- "the eSCL Message Broker". Interfacecontrol.com. Retrieved 2010-10-14.
- "HiveMQ MQTT Broker".
- "IBM Integration Bus".
- "The Official Microsoft WPF and Windows Forms Site". Patternshare.org. Retrieved 2010-10-14.
- "Azure Service Bus". Retrieved 2014-12-12.
- "Niklas - An Open Source Message Broker".
- "Proteus - An Open Source EAI Message Broker". Info-scape.com. Retrieved 2010-10-14.
- "sourceforge.net/projects/pubsub/". Retrieved 2012-08-15.
- "SAP NetWeaver Capabilities - SOA Middleware". Sdn.sap.com. Retrieved 2010-10-14.
- "Sapo Broker - SOA Middleware". oss.sapo.pt. Retrieved 2010-10-14.
- http://www.tibco.com/products/automation/application-integration/activematrix-businessworks/default.jsp. Missing or empty
- "WSO2-Message Broker".
|This network-related software article is a stub. You can help Wikipedia by expanding it.|