Outline: (1) sync vs async and what a broker buys; (2) queues, backpressure and the waiting room; (3) pub/sub; (4) Kafka: log, partitions, keys, groups, replication, sizing; (5) delivery semantics, idempotency, DLQ, schemas; (6) outbox, CDC, sagas, CQRS, event sourcing.
Let the class answer. The point: the e-mail is not needed to answer the fan, yet it sits in the critical path. That is the whole motivation for messaging.
Seat hold stays synchronous: the fan needs the answer now and it must be strongly consistent.
Queue: reading is taking. Log: reading is looking, with a bookmark per reader.
The three requests from the hook: warehouse loader (history), search fix (replay), fraud (order per order). A queue can do none of them.
Ana's three e-mails: crash between send and commit, twice. Bruno's missing e-mail: crash between DB commit and publish (producer side) — fixed by the outbox.