The DomainEventDispatcher class should provide a mechanism to register listeners, and to send events to these listeners. Events are transaction-bound, and will be delivered only after successful completion of the current transaction round.
DomainEventDispatcher will implement separate interfaces for registering listeners and for sending events, which will be exposed through MediaWikiServices for use in service wiring.