MediaWiki extensions manual
OOjs UI icon advanced.svg
Release status: beta
Implementation Data extraction
Description Propagation of change events to a RESTful service
Author(s) EEvans (WMF)talk
Latest version 0.1 (2015-11-19)
MediaWiki 1.27+
PHP 5.4+
Database changes No
License GNU General Public License 2.0 or later
Translate the EventBus extension if it is available at translatewiki.net
Check usage and version matrix.
Issues Open tasks · Report a bug

The EventBus extension propagates state changes (edit, move, delete, revision visibility, etc) to a RESTful event service, providing consumers of the service with the means of tracking changes to MediaWiki content.

Known IssuesEdit

Ideally, this sort of change propagation would be atomic, that is to say, if one of the tracked changes is committed in MediaWiki, the corresponding event is guaranteed to be delivered (even if by eventual consistency). As this extension is hook-based, that is not currently the case; Truly reliable event delivery will likely require something bound to the corresponding database transaction. (tracked in task T120242.)

Download / InstallEdit

The extension can be retrieved directly from Git [?]:

  • Browse code
  • Some extensions have tags for stable releases.
  • Each branch is associated with a past MediaWiki release. There is also a "master" branch containing the latest alpha version (might require an alpha version of MediaWiki).

Extract the snapshot and place it in the extensions/EventBus/ directory of your MediaWiki installation.

If you are familiar with git and have shell access to your server, you can also obtain the extension as follows:

cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/EventBus.git
  • To enable, add the following code to the bottom of your LocalSettings.php:
wfLoadExtension( 'EventBus' );
  •   Done; Navigate to 'Special:Version' on your wiki, and verify the extension is successfully installed


Note: For this extension to be useful, you need to be running an event service.

To configure the event service, add the following to your LocalSettings.php, (setting the event service name and URL value according to your environment.

$wgEventServices = [
    'eventbus'  => ['url' => 'http://hostname:8888/v1/events', 'timeout' => 10],
    'eventgate' => ['url' => 'http://hostname:8192/v1/events'],
    // ...