Files
raven/devdocs/specs/core-notification.txt
2018-06-28 23:41:48 +00:00

40 lines
1.7 KiB
Plaintext

# 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?