As we design and implement a base notification system in core, we are working with a basic underlying system (email only) for Core itself that can be overridden and expanded with external (advanced) notification behavior through Providers.
In this case, Echo notifications will be the Provider for notification behavior, the interface of creating and sending notifications is simplified through Core, and allows core notifications (Enotif) to be unified in behavior and "engine" behind the management of the notifications.
Since core notification system works with the Provider, and Echo will be the de-facto production provider (keeping behavior as-is for wikimedia production and any installation that utilizes Echo notifications extension) there's a question that was raised regarding what to do if a notification is sent into the Provider that the Provider does not recognize.
Two main options were raised:
- Designing a prioritization (fallback) system for the Providers, where notifications go to the primary provider and "fall back" to secondary provider if they are unrecognized.
- Designing a default Core provider that is completely overtaken by any other Provider if it is available, which would mean all notifications must go through the primary provider without fallback.
There are pros and cons for either of those options, and conversations so far have leaned heavily towards #2 (no Fallback) for several reasons, mostly architectural simplicity and general expected behavior (having a single provider that provides the entire expected behavior of notification management into the system is a unified expected behavior.)
That said, there are potential implications of behavior, specifically how core notifications (that will utilize the same system) may work with either of those choices. This ticket will try to summarize the conversations around which option to choose, the best reasons behind it, and what would be potential implications for the behaviors that will need to be communicated to development teams and potentially users.