The EventBus MediaWiki extension is both a backend library and user of its own backend library.
The main EventBus interface is a PHP API for producing Event Platform events to eventgate.
The EventBus extension also contains event producer code. This code subscribes to various MediaWiki Hooks and DomainEvents and translates them into JSON events, and then an EventBus class instance to produce the events.
This has been the status quo since EventBus extension's initial creation 11 years ago. It hasn't been a practical problem until now.
As more event streams are being created and more data fields being added, EventBus is starting to add dependencies on other extensions.
If EventBus depends on another extension, that means that extension can't depend on EventBus. Event producer logic should move to another extension so that EventBus can be used as a standalone library.
Done is
- Event producer logic is no longer in EventBus extension
- EventBus extension does not depend on other extensions that might themselves want to depend on EventBus.