Hi,
I am starting to implement ThreadIdGuessingAlgorithm for the distributed
module. Because this is a breaking change and I am new to Cassandra also,
therefore I want to have some discussion with you about how to do this.

For the ones who did not catch up with this work, please have a look at
JMAP Threads specs [1] and my work related to this [2].

So my ideas on how to do this:
- Add a needed inputs Cassandra Table for guessing threadId algorithm.
Maybe a table likes:
 CREATE TABLE ThreadRelatedTable (
threadId       timeuuid,
messageId      timeuuid,
mimeMessageIds     SET<text>,
subject       text,
PRIMARY KEY (mimeMessageIds, subject)
);
- Whenever we guess threadId for a new message, we access this table and do
the matching query to get related threadId(if there is) or decide new
message should have a new threadId.
- Whenever we save a new message, we save the thread-related data to this
table.

This is my first come-up idea. Please express your thoughts about this.

Best regards,

Quan

[1] https://jmap.io/spec-mail.html#threads
[2] https://issues.apache.org/jira/browse/JAMES-3516

Reply via email to