Add dead letter exchanges and queues to rabbitmq #1834
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There is a need from the govuk-chat app to be able to control the amount of delay that is used when a message from the govuk_chat_pulished_documents is retried. At the moment, a message will be retried immediately. The desired outcome is that we could have a message be sent away for a fixed amount of time before it is back in the queue.
The way we do this is we set a dead letter exchange for the govuk_chat_published_documents called govuk_chat_retry_dlx This dlx then send all incoming messages to a queue called govuk_chat_retry. this queue has a message-ttl value set and a dead letter exchange set to an exchange called govuk_chat_dlx. This last exchange route all incoming messages back to govuk_chat_published_documents.
The result of all this is that when a message is rejected in govuk_chat_published_documents, it ends up in the govuk_chat_retry queue, it will then wait here for the message-ttl value before expiring. After expiration it is sent back to
govuk_chat_published_documents.