<div dir="ltr">In our scenarios, messages are ultimately delivered to a 'retail' rabbitmq instance to be delivered to a client. The pipelines that process and deliver messages are purposefully redundant, hence there may be multiple replicas of each message 'racing' to the endpoint.<div>
<br></div><div>Usually, the replicas are resolved before getting to the retail rabbit. When components fail, however, duplicates can leak through during a small window of time. We eliminate those duplicates at the retail layer by looking at each message_id. Ultimately, our client contract allows duplicates as well in case one slips by.</div>
<div><br></div><div>It seems to me that this is a generic issue.</div><div><br></div><div>What would be useful in our case, and hopefully for many others, would be a 'Duplicate Message ID Window' in milliseconds, as an exchange attribute.</div>
<div><br></div><div>If non-zero, the exchange would drop any message with a duplicate message_id that appeared within the specified window of time, possibly routing it to the alternate exchange, if set.</div><div><br></div>
<div>In our case, a window of a few seconds, perhaps up to a minute would suffice.</div><div><br></div><div>Thanks,</div><div><br></div><div>Michael</div><div><br></div></div>