- Issue created by @kingdutch
We have modules named activity_*
(such as activity_creator
) which form Open Social's notification and stream system. They should be fundamental systems that know how to route activities for the activity stream as well as notifications to various different delivery methods.
However, over the years we have added subtle things to these modules that require the modules to have knowledge of what features are using the system. This makes the system more rigid and makes it harder to change our stream and notification infrastructure.
We should identify the places where the modules know about implementation details from features that use them.
For example there is the field_activity_entity
field which is a
dynamic_entity_reference →
field. By default that field allows referencing any entity, which from a system perspective is what we want. However, instead we've added configuration to the field to limit what can be stored in it which means that we need to update our activity system for every new feature. We can remove this coupling by removing the configuration and allowing everything. If we really need validation of what's in there or if we need different behavior for different types then we can utilise Drupal's plugin system so that features can ship the parts of the notification logic that they need, but the storage layer is agnostic.
Below is a list of known issues, but investigation should reveal more.
Active
12.1
Activity/Notifications