Hello people,

In recent days, James had been recieved a report about the strage
*MailboxNotFoundException*. There were some investigation to find the cause
of the issue.
We found that there are some inconsistent between mailbox and mailboxPathV2
tables. The issue is considered critical and it and bother/annoying users
to creates, rename, delete mailboxes.
I had open a PR for demonstrate this problem in unit test
https://github.com/linagora/james-project/pull/3100. There are some taken
actions to be resolving the mailbox inconsistencies.

But look back to the bigger picture, there're many tables have close
relationships, mailbox and mailboxPathV2 is just an example. There are
several proposals to prevent inconsistent but some have not been discussed
further than an idea:

 - Introducing a *transaction* bounded with cassandra (it can
systematically resolve the issue)
 - Re write the MailboxManager by *EventSourcing*
 - Having tools to fix the already existing inconsistent

*Having tools to fix the already existing inconsistent*

We have:
 - Webadmin Task for solving inconsistent cassandra mappings
 - A self healing MessageFastViewProjections

In developement:
 - Webadmin Task for solving inconsistent mailbox & mailboxPath
 - Retrying on failed mailbox creation/deletion

I want to bring this conversation to the mailling list and hope that we can
contribute solutions, enrich the proposals in order to reduce/fix the
cassandra inconsistencies.

Thank you!

Tran Tien Duc

Reply via email to