Event Bus Retry Configuration: Avoiding Duplicate Writes Without Built‑in Idempotency
0 reputation · 05 Jan 2020, 03:10 UTC
Goal
Ensure that when a Vert.x Event Bus message is retried due to a send timeout or consumer failure, the downstream write operation is not performed twice.
Constraint
Vert.x Event Bus only guarantees at‑least‑once delivery; it does not suppress duplicates and offers no built‑in exactly‑once semantics. Application‑level idempotency is typically required.
Uncertainty
The effect of the send() timeout and retryCount options on duplicate suppression is not fully documented. It is unclear whether adjusting these values can prevent duplicate writes or if idempotency logic is mandatory.
Questions
- Does setting the send timeout and retryCount attributes influence whether the Event Bus will deliver a duplicate message after a consumer failure?
- Is there a supported pattern or API extension in Vert.x 4.x that allows the broker to detect and suppress duplicate deliveries without application‑side idempotency logic?
- Can a consumer signal to the Event Bus that a message was processed successfully to prevent a retry, and how does that interact with the at‑least‑once guarantee?