Member-only story
Event Driven Architecture
What exactly is event driven architecture?
It is a software architecture pattern that uses events as the mode of communication between services.
In other words, the services or components in Event Driven Architecture does not communicate using CQRS, but using Events.
It has three main components.
- Producer
- Channel
- Consumer
Producer
This is the component of service sending the event. We can call it has publisher too. It is basically reporting that the component done completed.
e.g created/ updated/ deleted record
The producer will push the event to the Channel.
Channel
This is for me the most important component in the Event Driven Architecture. Channel is responsible for distributing the events to the relevant parties. Basically Channel places the event in a specialized queue (we may call it the Topic). Then consumers listen to this queue.
e.g Kafka, RabbitMQ etc..
Each Channel has its pros and cons.
Each Channels may use different methods to distribute the events such as Queue, REST API Call.