This commit is contained in:
40
devdocs/specs/core-notification.txt
Normal file
40
devdocs/specs/core-notification.txt
Normal file
@@ -0,0 +1,40 @@
|
||||
# Notification specifications
|
||||
|
||||
|
||||
SCRATCHPAD IDEAS
|
||||
=-=-=-=-=-=-=-=-=-
|
||||
Hypothetical sequence of operations for designing raven notification and tie into jobs and processor
|
||||
|
||||
WidgetStatusChange notification
|
||||
- OnChange event triggered in [WIDGETBIZ] with before and after state of widget in question (immediately after save or delete or whatever is of interest)
|
||||
- OnChange processor See if any users are subscribed to this event [CENTRAL_NOTIFICATION_CLASS THIS MUST BE SUPER EFFICIENT AS IT WILL BE HAMMERED] (events of interest / core central event bus handler of some kind??)
|
||||
- CENTRAL_NOTIFICATION_CLASS event of interest should cache in memory events of interest and trigger cache invalidation by [EVENT_OF_INTEREST_CLASS] subscription change
|
||||
- If no then bail out early
|
||||
- If yes then compares the before and after state of the widget and the given list of events of interest and processes notifications in turn
|
||||
- Create a notification event in a table of pending notification events [CENTRAL_NOTIFICATION_CLASS]
|
||||
- See v7 schema for ideas
|
||||
|
||||
Deliver notifications
|
||||
- Job triggers and HandleJob is called on [CENTRAL_NOTIFICATION_CLASS] which in turn checks if any events ready to Deliver
|
||||
- Hands off NOTIFY_EVENT to deliver one at a time to a [NOTIFICATION_DELIVERY_CLASS] which in turn calls each [NOTIFICATION_DELIVERY_DELIVERY_TYPE-SMPT/POPUP/WHATEVER]
|
||||
|
||||
|
||||
Maintenance
|
||||
- [CoreJobNotificationSweeper class] maintains the notifications tables see generator spec for thoughts
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
MISC
|
||||
=-=-
|
||||
|
||||
- NOTIFICATION SUBSCRIPTIONS
|
||||
- NOTIFICATION DELIVERIES (user or all if manager account)
|
||||
|
||||
- What is "Slack"?
|
||||
- should we tie into it for notifications?
|
||||
Reference in New Issue
Block a user