SOLID & Design Patterns Interview Question #88
What is idempotency and why is it important in distributed systems?
DDD Boundaries, Resilience, Caching & Practical ASP.NET Core Design Mid-Level Intermediate
Quick Interview Answer
An operation is idempotent when repeating the same request does not create additional unintended effects after the first successful application. It is important because networks, retries, queues, and message brokers can cause duplicate delivery.
Detailed Explanation
An operation is idempotent when repeating the same request does not create additional unintended effects after the first successful application. It is important because networks, retries, queues, and message brokers can cause duplicate delivery.
Typical techniques include idempotency keys, processed-message records, unique constraints, or naturally idempotent updates. The exact approach depends on the business operation.
Code Example
if (await processedMessages.ExistsAsync(message.Id))
return;
await HandleAsync(message);
await processedMessages.MarkProcessedAsync(message.Id);