Message Broker
CategoryArchitecture Component
Message Broker is an asynchronous messaging platform that integrates loosely-coupled heterogeneous systems, providing reliability, transactions, ordering and other enterprise features. It enables high-performance communication between application components.
Component Overview
Asynchronous Interaction of Distributed Systems
Message Broker, also referred to as Message-oriented Middleware (MOM), is a technology platform that enables asynchronous communication between various software applications and operational devices.
Asynchronous messaging reduces the complexity of developing inter-connected applications that span multiple operating systems and network protocols. Message Brokers control how applications interact with each other, rather than letting each one decide the actual destination for a message. Messages are routed between applications according to the publish-subscribe rules configured in the messaging platform. Publishers and subscribers can be implemented using a different programming language or run on a different operating system, but they have to support the same wire protocol to be able to exchange messages.
The most widely-used, reliable and scalable Message Broker products support enterprise-class features:
- Message Retention — messages are not lost in case of system failure, and can be stored until consumed.
- Delivery Guarantee — messages can be delivered to topic subscribers at most, at least or exactly once.
- Message Ordering — subscribers can be configured to see messages in the order they are published.
- Content-based Routing — messages are routed to different destinations depending on their content.
- Data Transformation — messages can be transformed by the platform based on a pre-defined map.
- Message Filtering — specific filters can be configured to discard messages based on their content.
- Topic Partitioning — a topic can be split into multiple partitions distributed across broker instances.
- Data Replication — topics and partitions are replicated on several cluster nodes for fault tolerance.
Modern messaging platforms offer several options for Message Broker deployment: as a standalone distributed messaging middleware, or as part of an Application Server environment. In either case, a well-designed platform supports clustering of Message Broker instances, each running on the same or different machines.
Some examples of Message Brokers are Apache Kafka, Apache ActiveMQ, Red Hat AMQ and RabbitMQ.
message
Moving application data becomes nearly as important as the data itself.
Designing applications to be asynchronous allows to maintain their independent release cycle, minimize the amount of IO blocking, and use network and hardware resources in an optimal way.
Support for industry-standard wire protocols, such as AMQP or MQTT, improves portability and interoperability of messaging platforms.
Next-generation messaging platforms can scale elastically and quickly handle continuous streams of data supplied in large volumes.