How do message queues help and what guarantees do they provide?
Queues decouple producers from consumers, absorb traffic spikes, enable retries and fan-out, and improve resilience when a downstream service is slow or down.
Delivery semantics: at-most-once (may lose), at-least-once (may duplicate, the common default), exactly-once (usually means effectively-once via idempotent processing plus dedupe/deduplication keys). Design consumers to be idempotent.
Patterns: work queues with competing consumers, pub/sub topics, dead-letter queues for poison messages, retry with exponential backoff and jitter, and ordering via partition keys (Kafka) when order matters.
Tools: Kafka for high-throughput, replayable event streams; RabbitMQ/SQS for classic task queues. Discuss backpressure, consumer lag monitoring and schema evolution.