!remind me to respond to Bill in 2 hours
For the past year, our Watney bot has alerted the release manager at the time scheduled by a project manager, so they can trigger a deployment. Today we generalized that reminder functionality so that any of us can add an arbitrary reminder that the bot will play back to us in the future.
This is very convenient because I can now easily add a reminder from my phone, or any o f my computers, and it will chime and send me a message at the designated time. Furthermore, we can use it in any of our project rooms, and specify somebody else to notify.
What's unusual about Watney is that it uses Matrix rooms themselves to store all of its data -- it has no other database. Matrix allows you to store arbitrary state events in each room. Watney stores an object listing all the reminders for a room in the room state, in addition to keeping them in RAM using node-schedule. When Watney restarts, it reloads each future reminder into node-schedule. When reminders trigger, it updates the state with the remaining future reminders.