Bird
0
0

What is wrong with this idempotent event consumer code snippet?

medium📝 Analysis Q7 of 15
Microservices - Event-Driven Architecture
What is wrong with this idempotent event consumer code snippet?
processed = set()
def consume(event):
    if event.id not in processed:
        process_event(event)
    processed.add(event.id)
AEvent ID is added after processing, risking duplicates if process_event fails
BEvent ID is never added to the processed set
Cprocess_event is called even if event is duplicate
DThe processed set is cleared after each event
Step-by-Step Solution
Solution:
  1. Step 1: Check order of adding event ID

    The event ID is added after processing the event.
  2. Step 2: Consider failure during processing

    If process_event fails, the event ID is not added, so the event may be processed again causing duplicates.
  3. Final Answer:

    Event ID is added after processing, risking duplicates if process_event fails -> Option A
  4. Quick Check:

    Add event ID before processing to ensure idempotency [OK]
Quick Trick: Add event ID before processing to avoid duplicates on failure [OK]
Common Mistakes:
MISTAKES
  • Adding event ID only after successful processing
  • Not handling process_event failures
  • Ignoring duplicate checks

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Microservices Quizzes