This task will track design and discovery work done for FY2024-2025 Hypothesis WE5.2.6 Event Broadcasting Discovery and Design.
If we explore designing an architecture for serializing and broadcasting events generated within MediaWiki core, we will create a foundation for offering first class event support that will enable us to consume events outside of the originating MediaWiki PHP process (e.g. JobQueue, EventBus). This will make MediaWiki data more reusable beyond the MediaWiki platform.
Approach
The work done in FY2024-2025 Q2 focused on building DomainEvents for use by the originating MediaWiki PHP process. Listening to DomainEvents in other processes (in MediaWiki or otherwise) would greatly increase the ability of engineers to re-use MediaWiki state change data without directly coupling to the MediaWiki component responsible for managing an entity (e.g. page content).
There are many technical unknowns about how to enable out-of-process events. This hypothesis aims to investigate those unknowns, and influence the architecture of the DomainEvents systems and the data modeling of MediaWiki core DomainEvents, to enable out-of-process usage.
The main outcome of this hypothesis will be a technical design that enables the usage of DomainEvents out-of-process by MediaWiki (possibly via the JobQueue) and by non MediaWiki consumers (ideally via WMF’s Event Platform).
Design work is being drafted in The Broadcasting and Receiving cross-process events in this google doc.
Hypothesis Summary
Status: Completed
Confirm whether the hypothesis was supported or contradicted
- Our hypothesis was confirmed. We wrote a comprehensive discovery and design document that explored a large number of technical unknowns and questions around how we might integrate MediaWiki event data across wiki sites and with other systems.
- We provided a foundation for future work, as well as long and short term recommendations that would help make MediaWiki data more reusable beyond the MediaWiki platform.
See comments for detailed description of the outcome.