A loon-lake checkout retries a send after a timeout and must not fulfill the order twice. What should the developer enable on the Service Bus entity?
Select an answer to reveal the explanation.
Short Explanation
Timeouts love double sends. Flip on duplicate detection, keep MessageId stable, and Service Bus drops the twin inside the detection window.
Full Explanation
When a loon-lake checkout retries a send after a timeout, duplicate detection on the Service Bus entity suppresses a second message that reuses the same MessageId inside the configured history window. The sender must keep MessageId stable across retries so the broker can recognize the twin and avoid double fulfillment. That broker-side gate addresses at-least-once send uncertainty without requiring a custom dedupe store for every publisher.
Cosmos DB ETag checks on every Service Bus receive fail as the primary answer because ETags protect document concurrency; they do not enable Service Bus send-side duplicate detection. Event Hubs throughput units as the duplicate gate fail conceptually: TUs buy capacity, not message identity deduplication on Service Bus. Receive-and-delete only, claimed to guarantee at-most-once sends, fails because receive mode affects consumer deletion timing—it does not suppress duplicate sends from a retrying producer.
Exam caveat: duplicate detection requires MessageId and a sufficient history window; empty or random ids on each retry defeat the feature. Operational check: enable duplicate detection, send the same MessageId twice within the window, and confirm only one message is available to receivers.