The domain event framework defines the DomainEventSubscriber interface for objects that self-register listeners. It allows related listeners to be grouped together. The framework provides EventSubscriberBase as a base class for supporting listener methods based on naming conventions.
Experimentation with using subscriber objects to trigger updates in extensions and across components components has shown that the concpet of "ingress objects" is more meaningful from the receiver's side than the concept of a "subscriber": "subscriber" is the mechanism by which the listeners get registered with the event source, but it's not meaningful to the implementation of listeners. The idea of an "ingress" however is: an ingress object acts as an adapter for incoming events, interpreting them in the content of the recipient's behavior and model.
To establish this concept and model it explicitly, we should:
- rename the EventSubscriberBase class to
EventIngressBaseDomainEventIngress (but keep the DomainEventSubscriber interface as it is and keep support for the old name) - see also T390735. - rename the DomainEventSubscribers key in extension.json to DomainEventIngress (but keep support for the old name).
- update extensions to use the new name
- CommunityConfiguration
- GrowthExperiments
- ContentTranslation
- Linter
- Wikistories
- Gadgets (from EventIngressBase!)
- Remove the class alias for EventSubscriberBase
- Remove support for the DomainEventSubscribers key in extension.json