If I delete a mailbox with say 100.000 items copying it into the deleted message vault might take time.
More time than what is expected to run on the event bus. (10 minutes)
This leads to timeout.
Reproduction: delete a very large mailbox with MANYYY mails.
How to fix: good question.... IMO running verrryyyyy long things on the event bus might not seem desirable so increasing the timeout might not be that clever.
We COULD fire MessageDeleted events to a dedicated work queue: the callback would only read the cassandra projection and emit the headerId and blobId + necessary metadata so that another compent asynchronously do the copy? This async mode could only work with dedup on though. Might be the best idea.
If I delete a mailbox with say 100.000 items copying it into the deleted message vault might take time.
More time than what is expected to run on the event bus. (10 minutes)
This leads to timeout.
Reproduction: delete a very large mailbox with MANYYY mails.
How to fix: good question.... IMO running verrryyyyy long things on the event bus might not seem desirable so increasing the timeout might not be that clever.
We COULD fire MessageDeleted events to a dedicated work queue: the callback would only read the cassandra projection and emit the headerId and blobId + necessary metadata so that another compent asynchronously do the copy? This async mode could only work with dedup on though. Might be the best idea.
THoughts?