Module 5
Decouple services and handle async workloads: message queues, pub/sub, Kafka, stream processing, and retry patterns.
What message queues are, why they exist, and core concepts: producers, consumers, brokers, acknowledgments, and delivery guarantees.
The pub/sub messaging model: topics, subscriptions, fan-out, filtering, and how it enables event-driven architectures.
Kafka architecture: brokers, topics, partitions, consumer groups, offsets, exactly-once semantics, and when Kafka is the right choice.
RabbitMQ architecture: exchanges, queues, bindings, routing keys. How it differs from Kafka and when to choose it.
Designing systems around events: event producers, consumers, event buses, event schemas, and avoiding common pitfalls.
Real-time data processing: Kafka Streams, Apache Flink, windowing, stateful processing, and stream-table duality.
Handling message failures gracefully: retry with exponential backoff, dead letter queues, poison message handling, and idempotency.