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]

Reply via email to