Concept
Services publish events, such as OrderPlaced, to a broker and others react when they are ready. It decouples producers from consumers and absorbs bursts, at the cost of eventual consistency.
The tutor works through these with you, in conversation and code. A session ends when you have shown them, not when a video does.
A few lines that show Event-driven messaging doing its job.
// publisher
kafka.send("orders", order.id().toString(), new OrderPlaced(order.id(), order.total()));
// consumer, in another service
@KafkaListener(topics = "orders", groupId = "invoicing")
void onOrderPlaced(OrderPlaced event) {
if (invoices.existsByOrderId(event.orderId())) return; // seen before: skip
invoices.create(event);
}Assuming each event arrives exactly once. Brokers deliver at least once, so consumers must be idempotent, and a database write plus a publish must be made atomic with an outbox table.
Your roadmap puts these before Event-driven messaging, unless you already know them.
Once a session shows you understand Event-driven messaging, it comes back for review. Each review takes a minute and tells the memory model how well you still know it.