jeantil opened a new pull request, #2422: URL: https://github.com/apache/james-project/pull/2422
This serves to clarify implementation details that can affect the semantics of some operations. i couldn't really find a better place than the javadoc of the `ManageableMailQueue` to put this in. I did write the following in `server/queue/queue-api/README.adoc` ```README.adoc = Apache James MailQueue projects The James MailQueue project provies the queue/spool mechanism used in the Apache James project. The james-server-queue-api defines 2 levels of APIs which can be implemented to provide such spool mechanism basic and manageable. == Overview The main API contracts are: - MailQueue - ManageableMailQueue == MailQueue This contract includes the most basic semantics for the queue mechanism: - enqueue - dequeue Both operations are exposed in a blocking and a reactive flavor. == ManageableMailQueue This contract enhances the basic semantics of MailQueue to offer management services: - browse - flush - clear - remove [NOTE] .ManageableMailQueue#remove ==== - **MUST** be eventually consistent - **CAN** be strongly consistent ==== [NOTE] .ManageableMailQueue#browse ==== - **MUST** tolerate concurrent changes in the underlying queue while the MailQueueIterator is being consumed - **CAN** return stale items (removed or dequeud) since the operation has started. This can happen for snapshot-based implementations that have captured a copy of the data or in distributed implementations relying on eventual consistency ==== ``` but the implementation notes of the MailQueue itself are in the javadoc rather than in a readme so I decided against including this file in the PR. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org For additional commands, e-mail: notifications-h...@james.apache.org