Event-Driven Architecture and Asynchronous Messaging Questions

Designing systems around events and message passing: publish/subscribe, message queues, event streaming, choreography versus orchestration, and decoupling producers from consumers. Covers delivery semantics (at-least-once, at-most-once), ordering, backpressure, dead-letter handling, and the operational tradeoffs of asynchronous flows. Includes async processing patterns for offloading slow work.

MediumTechnical
85 practiced

Design a Dead Letter Queue (DLQ) processing workflow. Requirements: safe reprocessing of failed messages, visibility into failure reasons, quarantine for poison messages, and automation to replay or archive. Explain checks to run before re-enqueueing (idempotency, schema compatibility), and how to monitor DLQ health.

EasyTechnical
85 practiced

Define idempotency in the context of event-driven architectures. As a Solutions Architect, design a simple idempotency/deduplication strategy for an email-sending consumer that reads messages with payload {email_id, recipient, template}. Describe storage choices for dedup keys, TTL policies, memory vs disk trade-offs, and how to handle retries and long outage recovery.

MediumTechnical
78 practiced

A customer needs an immutable audit trail and the ability to rebuild multiple read models quickly. Compare event sourcing + CQRS against a traditional relational database augmented with Change Data Capture (CDC). Discuss complexity, operational cost, replayability, schema evolution, developer ergonomics, and scenarios where event sourcing is or is not justified.

MediumTechnical
105 practiced

How would you choose a Kafka partitioning key for a user-events topic such that ordering is preserved per user but partitions are balanced across the cluster? Discuss hashing strategies, handling hot users, and approaches for multi-tenant fairness when some tenants generate far more events than others.

MediumTechnical
138 practiced

Design an idempotent consumer for processing payment events from a message queue. Message format: {payment_id, user_id, amount, currency, timestamp}. Requirements: prevent double-charges on redelivery, support at-least-once delivery semantics from the broker, allow retries, and maintain low latency. Describe the deduplication store, choices between in-memory, Redis, or relational DB, TTL strategy, and cleanup considerations.

Unlock Full Question Bank

Get access to all 25 Event-Driven Architecture and Asynchronous Messaging interview questions and detailed answers.

Sign in to Continue

Join thousands of developers preparing for their dream job.