Outline: (1) why the synchronous chain hurts; (2) events, topics, partitions, offsets; (3) Kafka, keys and consumer groups; (4) delivery guarantees, outbox and sagas; (5) event sourcing, CQRS; (6) dead letter queue; (7) when not to use it.
Let the class answer before showing the bullets. The coupling argument (third bullet) is the one that grows with the system.
Hands-on 9 uses enable_auto_commit=False and commit() after processing: at-least-once.