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 "Benoit Tellier (Jira)" <se...@james.apache.org> on 2023/11/07 21:39:00 UTC

[jira] [Created] (JAMES-3959) Starting distributed James without OpenSearch

Benoit Tellier created JAMES-3959:
-------------------------------------

             Summary: Starting distributed James without OpenSearch
                 Key: JAMES-3959
                 URL: https://issues.apache.org/jira/browse/JAMES-3959
             Project: James Server
          Issue Type: Improvement
          Components: elasticsearch
    Affects Versions: 3.9.0
            Reporter: Benoit Tellier


h3. Why?

While doing some resiliency tests (PRA: Activity Recovery Plan) we noticed that it is compulsory to have the OpenSearch cluster online in order to start James.

However, in case of disaster, I should be able to start James without having an OpenSearch cluster online. Indeed, search is a (very) nice to have feature but not an absolute necessity for sending / receiving mails. And restauring an OpenSearch service could take significant time. Being able to start without the OpenSearch cluster would thus allow to significantly accelerate the recovery plan.

Today one could start even the distributed server in scanning mode, so without OpenSearch but this is not a good idea for two reasons:

 - The search would thus be implemented by scanning entire mailbox thus a few user doing search could have significant impacts thus worsening the incident.
 - The documents to index would be lost and some sorts of full reindexing would also be needed when coming back online.

h3. Expectations

I expect the following:

 - being able to start without OpenSearch
 - Search operations hitting the search index fails. But SearchOverrides would succeed, offering a minimal search service for non search operations eg imap resynchronisation...
 - No index attempt is performed but events would be stored in the right place in event dead letter to eventually get replayed...

h3. How?

Provide a `opensearch_disabled` search index implementation:

 - reject search not satisfied  by search overrides
 - save events into event dead letter for later processing

h3. Definition of done

Integration tests matching the expectations.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org