A message broker is a software that enables applications, systems, and services to communicate with each other and exchange information. They do this by translating messages between formal messaging protocols (HTTP, FTP, SNMP, etc). This neutral protocol is what allows interdependent services to communicate with one another directly, even if they were written in different languages or implemented on different platforms. The concept of a message broker arose when mainframe applications needed to communicate with client-server applications starting in the 80s.
Message-Oriented Middleware
Message brokers are the software modules within messaging middleware or message-oriented middleware (MOM) solutions. This type of middleware provides developers with a standardized means of handling the flow of data between an application’s components so that the developer can focus on core logic and not the messaging aspects. They generally serve as a distributed communications tier that allows applications spanning multiple platforms to communicate internally.
The role of a message broker is to validate, store, route, and deliver messages to the appropriate destination across the enterprise. In this role they serve as intermediaries between other applications, they utilize the principle of location transparency that allows senders to issue messages without knowing where the receivers reside, whether or not they are active, or even how many of them there are. This benefit will facilitate the decoupling of processes and services within applications.
Reliability and Guaranteed Delivery
In order to provide reliable message storage and guaranteed delivery, message brokers often rely on a substructure or component called a message queue. The role of the message queue is to store and order the messages until the consuming applications can process them. Within the message queue, the messages are stored in the exact order in which they were transmitted (commonly called FIFO or first-in-first-out) and remain in the queue until receipt of the message is confirmed. Confirmation can only be achieved is the message is retrieved and successfully consumed by the recipient.
Asynchronous Model
Message Brokers make it possible for inter-application communication to implement an asynchronous model. This model will prevent the loss of valuable data and enable systems to continue functioning even in the face of intermittent connectivity or latency issues. Another benefit of asynchronous messaging is that it guarantees that messages will be delivered once (and once only) in the correct order relative to other messages.
Queue Managers
Message brokers generally utilize the services of queue managers to handle the interactions between multiple message queues. Additionally, they provide other services like; data routing, message translation, persistence, and client state management functionalities.Apache Kafka is built on top of the message broker model. So, before we dive into the concepts of Kafka lets review some of the basic concepts of message brokers.
Child pages (Children Display) |
---|