Extend the signal framework to external plugins
The WebUIs would greatly benefit from being informed of events in core, so they can update their caches and run operations.
The idea would have to have generic plugins initialized with Mailman, that would be able to subscribe to signals and accordingly.
Among the events that the web UIs would be interested in:
- domain creation and deletion
- mailing list creation (eg: create it in HyperKitty before the first email is sent)
- mailing list modification / settings change (eg: update the HyperKitty cache)
- mailing list deletion
- subscription and unsubscription (eg: update the cache of the allowed lists for this user)
The plugins should be long-lived (instanciated when Mailman starts) and would be able to do a variety of actions, including but not limited to HTTP calls (as we could imagine integration into a message bus system).