New experimental event store

Last modified by Vincent Massol on 2021/04/06

The storage of the events is now asynchronous, they used to slow down every stored event before (document modification, blog post, etc.) since each of them was producing a blocking database insert query.

This version introduce the complete support of the new event store in the UI notifications (mail notification support is planned for 12.6). Pre filtering is not new and was introduced in 12.1 but it's part of a new architecture to manage user notifications.

The main differences with the current default behavior are:

  • events are associated with users right when they happen and the association is stored, this means changing your notification configuration won't have any impact on already stored user notifications
  • gathering of notifications associated with users is very fast because it's a simple request to get the list of already calculated associations
  • it will be possible to introduce much more advanced event filters since they won't be required to be translated into database queries anymore

The new event store and the pre filtering are disabled by default. You can enable both of these options in xwiki.properties configuration file using the following:

notifications.eventPreFilteringEnabled = true
eventstream.store.enabled=true

This won't disable the old event store which will be used as a fallback when something is not supported yet by the new store especially regarding the support of notification post filters which is not yet fully complete.

Get Connected