[
https://issues.apache.org/jira/browse/MAILBOX-211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14984080#comment-14984080
]
ASF GitHub Bot commented on MAILBOX-211:
----------------------------------------
GitHub user chibenwa opened a pull request:
https://github.com/apache/james-project/pull/15
Mailbox 259 - Allow the user to choose between synchronous and asynchronous
event delivery
I added to the event system defined in MAILBOX-211 the possibility to
define how to handle event delivery, either sunchronously or asynchronously.
Nowadays MPT test (memory based) behaves well with asynchronous event
delivery.
This limits the impact of slow MailboxListeners.
Of course, this solution is not perfect : for example, if the indexation is
slow, it will possibly take all the resources and other listeners will have to
wait. But this is better than what exists today.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/chibenwa/james-project MAILBOX-259
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/james-project/pull/15.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #15
----
commit d8d16a849760b15979250f9069e24a6dc006e1b1
Author: benwa <[email protected]>
Date: 2015-10-09T06:20:41Z
MAILBOX-211 Indent CacheInvalidatingMailboxListener with 4 spaces
commit b03800f779ed4349ee6ed866a5673166f9ebc4d2
Author: benwa <[email protected]>
Date: 2015-10-09T06:23:20Z
MAILBOX-211 MailboxListener should indicate its type
commit 70a9d511735b323168cf5ec7651cb479497eb28f
Author: benwa <[email protected]>
Date: 2015-10-09T06:31:26Z
MAILBOX-211 Moving event related interfaces and code to a new package
commit 402a5e1dae93b27a27352940b7ad3b2a34ff8361
Author: benwa <[email protected]>
Date: 2015-10-09T06:33:20Z
MAILBOX-211 Rewrite Default DelegatingMailboxListener
commit db1f95da8047973c578c63b0501b22a6d5937d2f
Author: benwa <[email protected]>
Date: 2015-10-09T06:34:08Z
MAILBOX-211 Introduce event factories
commit e53590cd9961e18cbbe6759b9882f7ec3b3942b0
Author: benwa <[email protected]>
Date: 2015-10-09T06:35:41Z
MAILBOX-211 Introduce MailboxId de serializer
commit b0e248cb70b95a30e4a7c58efc8d8e59de649579
Author: benwa <[email protected]>
Date: 2015-10-09T06:36:29Z
MAILBOX-211 Moving ACL serialization to JSON to a new package
commit d81fca80ff2565703f810e7051902729ae897857
Author: benwa <[email protected]>
Date: 2015-10-09T06:37:57Z
MAILBOX-211 Event serialization
commit 2c7b3425fa872e5f00ce214c282c2f01b3279b21
Author: benwa <[email protected]>
Date: 2015-10-09T06:38:35Z
MAILBOX-211 Interfaces abstracting a publish subscribe system
commit 0789c5e5a1624c7628eb4ff87bdbb18a724d4fde
Author: benwa <[email protected]>
Date: 2015-10-30T10:58:14Z
MAILBOX-211 Add a registration system based on MailboxPaths and a Cassandra
based implementation
commit 4741cc777e211d36df44c30ac9646daf4eeb95d5
Author: benwa <[email protected]>
Date: 2015-10-30T10:58:29Z
MAILBOX-211 Event serialization
commit 2cdfd6b218de1abf0e45a7831bb0ceb9d85179af
Author: benwa <[email protected]>
Date: 2015-10-09T06:42:07Z
MAILBOX-211 Event processing should not be stopped by error thrown
commit 15194cada9e641ee38289a07d5f13bcaa2db0b85
Author: benwa <[email protected]>
Date: 2015-10-09T08:38:11Z
MAILBOX-211 Distributed Delegating Mailbox Listener and a registered based
implementation
commit 3bfc613484410c1f36812127264bc5747557b4a0
Author: benwa <[email protected]>
Date: 2015-10-09T15:12:20Z
MAILBOX-211 Adding a Broadcast based event system
commit 077ddeaefb87c50b12d5bff54366b4c4fdbce916
Author: benwa <[email protected]>
Date: 2015-10-30T09:37:25Z
MAILBOX-211 Broadcast integration test
commit f144bd1d18df9522103f0085442da0f088f82f3c
Author: benwa <[email protected]>
Date: 2015-10-25T20:02:25Z
MAILBOX-211 Integration test for Cassandra based distributed event system.
commit cc4cb291b127c50905414bfc741ee80ed61da235
Author: benwa <[email protected]>
Date: 2015-10-27T10:09:30Z
MAILBOX-211 Adding Kafka publishing system
commit d81254a01c0958d93c4a9386b378b2afdd0860f9
Author: benwa <[email protected]>
Date: 2015-10-28T23:01:52Z
MAILBOX-211 Mailbox Id deserializer should be Spring defined
commit 97012913f1f67d68229c98032a1be356d1884bcc
Author: benwa <[email protected]>
Date: 2015-10-28T23:03:49Z
MAILBOX-211 Add a configuration reader for Spring about the Event system
commit f21340b04a044a22caff8b68181844f7ff39c5e2
Author: benwa <[email protected]>
Date: 2015-10-30T17:55:37Z
MAILBOX-211 Event system documentation
commit ddf44e7574276019e0701028732a5a6767a37292
Author: benwa <[email protected]>
Date: 2015-10-31T15:00:57Z
MAILBOX-259 Introduce the concept of event delivery, and a synchronous and
asynchronous delivery
commit 6f85f8aad8ee28f7b214728162c7270a75593689
Author: benwa <[email protected]>
Date: 2015-10-31T15:22:10Z
MAILBOX-259 Add mailbox configuration for event delivery
commit 654dc06bd0b195aab0931085c4be89ab85c53b5d
Author: benwa <[email protected]>
Date: 2015-10-31T15:27:45Z
MAILBOX-259 Add MPT tests for asynchronous event system
----
> Distributed IMAP notification - distribute mailbox events
> ---------------------------------------------------------
>
> Key: MAILBOX-211
> URL: https://issues.apache.org/jira/browse/MAILBOX-211
> Project: James Mailbox
> Issue Type: New Feature
> Reporter: Tellier Benoit
> Attachments: james-distributed-event-system.odp
>
>
> The Mailbox event system is limited to one James instance. This means if a
> user is connected on a server A and if a mail arrives for him on server B, he
> will not get the notification.
> This means we need to send events to a message queue, so that they can be
> treated remotely by other James server to send IMAP notifications.
> But we need to be carefull : we must not trigger some Listener : eg : Event
> must be treated only once by MessageSearchIndex.
> What we can first notice is that Listener that must be triggered only once
> are Global Listeners, other are per mailbox registered.
> What we just need to do is :
>
> - send event in a per mailbox topic ( so that no James server will have
> scalibility trubbles ). Imap subscription will be listening the topic of the
> mailbox they are targeting threw the message queue. Global listener are
> called only once on the server submitting the event.
> Of course I will provide Spring defined beans and optionnal separated classes.
> What do you think of it ?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]