Implement a deferred message queue and message types. Add various rules. Add rounding to minimise notifications.