Message Queues & Event Streaming
### Synchronous vs Asynchronous
When Microservice A calls Microservice B via HTTP, it is synchronous. If B fails or is slow, A suffers. Message Queues introduce asynchronous decoupling.
### How Queues Work
A producer sends a message to the queue. A consumer reads it at its own pace. This acts as a massive shock-absorber during traffic spikes. If the consumer goes down, messages safely accumulate in the queue until it comes back online.
### RabbitMQ vs Kafka
- **RabbitMQ:** A traditional message broker offering complex routing logic and point-to-point delivery. Once consumed, the message is deleted. - **Apache Kafka:** A distributed event streaming platform. Messages are appended to an immutable log. Multiple consumers can read the same stream, and messages persist for a configured retention period.

