Currently we have no way to notify people related to when they have a standup meeting due. The way to handle this would be to create a draft
standup meeting, and associate it to a notification that will be sent to the user. There are multiple ways each with pros/cons in implementing.
Fanout: async approach to utilizing workers better and getting spreading the workload. An example would be, we have a standup meeting group that needs to have standup meetings populated for it, we will create a new job for each standup meeting (we can supply user + standup meeting group or something).
We would have a cronjob that is run once a day (close to midnight), which will generate all the standup meetings for every standup group (we would do some fanout approach). This will only create standup meetings for ones that don’t exist.
Right after the standup meeting has been created (specifically for draft), it will then create a notification that sends ~15 minutes (x minutes we can decide) before the standup start_time
. It will include a validation to make sure the standup is still in draft
(it won’t send for completed, or skipped).
Pros:
Cons:
This would have a cronjob that runs every 10 minutes and checks over the past hour to see if any standup meeting groups are nearing start_time
(typically you want to give some leeway incase there is failure, that it will automatically try again without intervention). We can even increase the lookback time to longer if needed.
After it finds standup meeting groups that are going to start soon, it will fanout every user for that meeting. The new job will then figure out if they need to create a standup meeting + notification or not.