james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MAILBOX-211) Distributed IMAP notification - distribute mailbox events
Date Sat, 31 Oct 2015 17:57:27 GMT

    [ 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:


    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:


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 <btellier@linagora.com>
Date:   2015-10-09T06:20:41Z

    MAILBOX-211 Indent CacheInvalidatingMailboxListener with 4 spaces

commit b03800f779ed4349ee6ed866a5673166f9ebc4d2
Author: benwa <btellier@linagora.com>
Date:   2015-10-09T06:23:20Z

    MAILBOX-211 MailboxListener should indicate its type

commit 70a9d511735b323168cf5ec7651cb479497eb28f
Author: benwa <btellier@linagora.com>
Date:   2015-10-09T06:31:26Z

    MAILBOX-211 Moving event related interfaces and code to a new package

commit 402a5e1dae93b27a27352940b7ad3b2a34ff8361
Author: benwa <btellier@linagora.com>
Date:   2015-10-09T06:33:20Z

    MAILBOX-211 Rewrite Default DelegatingMailboxListener

commit db1f95da8047973c578c63b0501b22a6d5937d2f
Author: benwa <btellier@linagora.com>
Date:   2015-10-09T06:34:08Z

    MAILBOX-211 Introduce event factories

commit e53590cd9961e18cbbe6759b9882f7ec3b3942b0
Author: benwa <btellier@linagora.com>
Date:   2015-10-09T06:35:41Z

    MAILBOX-211 Introduce MailboxId de serializer

commit b0e248cb70b95a30e4a7c58efc8d8e59de649579
Author: benwa <btellier@linagora.com>
Date:   2015-10-09T06:36:29Z

    MAILBOX-211 Moving ACL serialization to JSON to a new package

commit d81fca80ff2565703f810e7051902729ae897857
Author: benwa <btellier@linagora.com>
Date:   2015-10-09T06:37:57Z

    MAILBOX-211 Event serialization

commit 2c7b3425fa872e5f00ce214c282c2f01b3279b21
Author: benwa <btellier@linagora.com>
Date:   2015-10-09T06:38:35Z

    MAILBOX-211 Interfaces abstracting a publish subscribe system

commit 0789c5e5a1624c7628eb4ff87bdbb18a724d4fde
Author: benwa <btellier@linagora.com>
Date:   2015-10-30T10:58:14Z

    MAILBOX-211 Add a registration system based on MailboxPaths and a Cassandra based implementation

commit 4741cc777e211d36df44c30ac9646daf4eeb95d5
Author: benwa <btellier@linagora.com>
Date:   2015-10-30T10:58:29Z

    MAILBOX-211 Event serialization

commit 2cdfd6b218de1abf0e45a7831bb0ceb9d85179af
Author: benwa <btellier@linagora.com>
Date:   2015-10-09T06:42:07Z

    MAILBOX-211 Event processing should not be stopped by error thrown

commit 15194cada9e641ee38289a07d5f13bcaa2db0b85
Author: benwa <btellier@linagora.com>
Date:   2015-10-09T08:38:11Z

    MAILBOX-211 Distributed Delegating Mailbox Listener and a registered based implementation

commit 3bfc613484410c1f36812127264bc5747557b4a0
Author: benwa <btellier@linagora.com>
Date:   2015-10-09T15:12:20Z

    MAILBOX-211 Adding a Broadcast based event system

commit 077ddeaefb87c50b12d5bff54366b4c4fdbce916
Author: benwa <btellier@linagora.com>
Date:   2015-10-30T09:37:25Z

    MAILBOX-211 Broadcast integration test

commit f144bd1d18df9522103f0085442da0f088f82f3c
Author: benwa <btellier@linagora.com>
Date:   2015-10-25T20:02:25Z

    MAILBOX-211 Integration test for Cassandra based distributed event system.

commit cc4cb291b127c50905414bfc741ee80ed61da235
Author: benwa <btellier@linagora.com>
Date:   2015-10-27T10:09:30Z

    MAILBOX-211 Adding Kafka publishing system

commit d81254a01c0958d93c4a9386b378b2afdd0860f9
Author: benwa <btellier@linagora.com>
Date:   2015-10-28T23:01:52Z

    MAILBOX-211 Mailbox Id deserializer should be Spring defined

commit 97012913f1f67d68229c98032a1be356d1884bcc
Author: benwa <btellier@linagora.com>
Date:   2015-10-28T23:03:49Z

    MAILBOX-211 Add a configuration reader for Spring about the Event system

commit f21340b04a044a22caff8b68181844f7ff39c5e2
Author: benwa <btellier@linagora.com>
Date:   2015-10-30T17:55:37Z

    MAILBOX-211 Event system documentation

commit ddf44e7574276019e0701028732a5a6767a37292
Author: benwa <btellier@linagora.com>
Date:   2015-10-31T15:00:57Z

    MAILBOX-259 Introduce the concept of event delivery, and a synchronous and asynchronous

commit 6f85f8aad8ee28f7b214728162c7270a75593689
Author: benwa <btellier@linagora.com>
Date:   2015-10-31T15:22:10Z

    MAILBOX-259 Add mailbox configuration for event delivery

commit 654dc06bd0b195aab0931085c4be89ab85c53b5d
Author: benwa <btellier@linagora.com>
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
> 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

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

View raw message