You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2020/04/07 08:01:29 UTC
[james-project] 04/07: [ADR] Event bus errors upon dispatch
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 <bt...@linagora.com>
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org