40 lines
1.7 KiB
Plaintext
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? |