This project was for me to learn about RabbitMQ, in here there is a notification-event-emitter and currently just single text-notification handler.
Run docker compose up --build to see the messages in action. Inside the messages are hostnames to track what message came from what process.
Creates 4 instances of the notification-event-emitter and 4 of the text-notification handler.
This is the process that produces the events and pushes them to RabbitMQ, it randomly generates strings to emit for eternity (or until you stop it).
This is a handler that consumes messages, doesn't have any particularly interesting logic after consuming a message.
The RabbitMQ server has a notifications queue with durable=True meaning the state of the queue is persisted if the RabbitMQ server stops and restarted. Also, the consumers have prefetch_count=1 meaning RabbitMQ will not give a consumer more than one message at a time.