Learn the vocabulary of decoupling services through published and consumed events.
0 / 5 completed
1 / 5
At standup, a dev mentions a service publishing an event when something happens, with other services reacting independently to that event, rather than the publisher directly calling each interested service. What is this architectural pattern called?
Event-driven architecture has a service publish an event when something meaningful happens, with other interested services reacting to that event independently, rather than the publishing service needing to directly call each interested consumer itself. This decouples the publisher from having to know which services care about the event or how they'll react to it. It allows new consumers to be added later without requiring any change to the original publishing service at all.
2 / 5
During a design review, the team wants a durable log of every published event that a consumer can replay from a specific point if it needs to reprocess past events. Which capability supports this?
An event log with replay capability durably stores every published event in order, letting a consumer replay from a specific point in that history if it needs to reprocess past events, such as after recovering from a bug or rebuilding its own internal state. Delivering each event only once with no ability to look back removes that recovery option entirely. This durable, replayable log is a defining feature of a system like Kafka that's commonly used to implement event-driven architecture at scale.
3 / 5
In a code review, a dev notices a consumer service is designed to safely process the same event more than once without causing an incorrect duplicate effect. What does this represent?
Idempotent event consumption designs a consumer so that processing the same event more than once produces the same correct outcome as processing it exactly once, rather than causing an incorrect duplicate effect. This matters because most real-world event delivery systems provide an at-least-once delivery guarantee, meaning a consumer should genuinely expect to occasionally receive the same event more than once. Designing consumers to be idempotent is a standard, necessary practice given that realistic delivery guarantee.
4 / 5
An incident report shows a downstream consumer service silently failed to process a critical event and no one noticed until a customer reported missing data days later. What practice would prevent this?
Monitoring consumer processing health and alerting on a failure catches a silently broken downstream consumer before it causes a much larger, harder-to-diagnose problem later. Assuming successful publication guarantees successful downstream processing ignores that the publisher and consumer are decoupled and independently fallible. This end-to-end monitoring across both publisher and consumer sides is essential given how event-driven architecture's decoupling can otherwise hide a real processing failure.
5 / 5
During a PR review, a teammate asks why the team publishes an event instead of having the originating service directly call every interested downstream service synchronously. What is the reasoning?
Calling every interested downstream service directly and synchronously requires the originating service to know about, and stay coupled to, every consumer's existence and availability. Publishing an event decouples that relationship entirely, letting a new consumer subscribe later without any change to the original publisher. The tradeoff is the added complexity of reasoning about eventual, asynchronous processing instead of an immediate, synchronous direct call.