Skip to content

feat(deliverymq): bound retry task receives with backoff and DLQ#997

Open
LendritIbrahimi wants to merge 1 commit into
hookdeck:mainfrom
LendritIbrahimi:lendritibrahimi/feat/retrymq-max-receive-dlq
Open

feat(deliverymq): bound retry task receives with backoff and DLQ#997
LendritIbrahimi wants to merge 1 commit into
hookdeck:mainfrom
LendritIbrahimi:lendritibrahimi/feat/retrymq-max-receive-dlq

Conversation

@LendritIbrahimi

Copy link
Copy Markdown

This fixes the issue where a single lost attempt log produced an unbounded 30s warning loop that couldn't be turned off by destination disable or pod restarts. (#663)

The implementation follows the suggestion in the linked issue, failed retry tasks now back off exponentially using rsmq's receive count, instead of reappearing every 30s forever. Tasks received more than RETRY_MAX_RECEIVE_COUNT times are moved to the deliverymq-retry-dlq queue.

The move to the DLQ is send-then-delete, so a failure between the two steps can only duplicate a task, never lose one, and landing there emits an error log with the full task payload for operator visibility. RETRY_MAX_RECEIVE_COUNT defaults to 5 and can be set to 0 to disable the DLQ path entirely.

Failed retry tasks now back off exponentially using rsmq's receive count, instead of reappearing every 30s forever. Tasks received more than RETRY_MAX_RECEIVE_COUNT times are moved to the deliverymq-retry-dlq queue.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant