This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 19a35e0bebe117f8e81c30f7f8b438560b0c5924 Author: Benoit Tellier <[email protected]> AuthorDate: Fri Apr 3 12:19:32 2020 +0700 [ADR] Event bus errors upon dispatch --- .../0027-eventBus-error-handling-upon-dispatch.md | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/adr/0027-eventBus-error-handling-upon-dispatch.md b/src/adr/0027-eventBus-error-handling-upon-dispatch.md new file mode 100644 index 0000000..60e5cba --- /dev/null +++ b/src/adr/0027-eventBus-error-handling-upon-dispatch.md @@ -0,0 +1,33 @@ +# 27. EventBus error handling upon dispatch + +Date: 2020-04-03 + +## Status + +Accepted (lazy consensus) + +## Context + +James allows asynchronous processing for mailbox events via MailboxListener. This processing is abstracted by the +EventBus. + +If the processing of an event via a mailbox listener fails, it is retried, until it succeeds. If a maxRetries parameter +is exceeded, the event is stored in deadLetter and no further processing is attended. + +The administrator can then look at the content of deadLetter to diagnose processing issues and schedule a reDelivery in +order to retry their processing via webAdmin APIs. + +However no such capabilities are supported upon dispatching the event on the eventbus. A failed dispatch will result in message loss. + +## Decision + +Upon dispatch failure, the eventBus should save events in dead letter using a dedicated group. + +Reprocessing this group an admin can re-trigger these events dispatch. + +In order to ensure auto healing, James will periodically check the corresponding group in deadLetter is empty. If not a +re-dispatching of these events will be attempted. + +## Consequence + +In distributed James Guice project an administrator have a way to be eventually consistent upon rabbitMQ failure. \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
