Event-driven architecture (EDA) is a software architecture paradigm promoting the production, detection, consumption of, and reaction to events.
source: https://en.wikipedia.org/wiki/Event-driven_architecture
An example of a message broker is RabbitMQ:
RabbitMQ is a lightweight, open-source, and easy-to-deploy message broker that enables services and applications to communicate with each other. It supports multiple messaging protocols like AMQP (Advanced Message Queuing Protocol), and MQTT (MQ Telemetry Transport). STOMP (Simple (or Streaming) Text Orientated Messaging Protocol) and a few more.
EDA uses a message broker like RabbitMQ to accept and store messages between applications (“micro-services”). Think of it as a postoffice mailbox. Mail goes into the mailbox from behind by the postmaster and is picked up in the front by another person. There are several terms you will need to know:
- Producer - The act of producing a message to be addressed and put into a queue.
- Consumer - The act of picking up a message from a queue.
- Exchange - The routing portion of the system.
- Queue - The pipeline that mail passes through.
- Routing key - The address of where the message needs to eventually go.