Overview

This page describes the design for supporting notification consolidation for the notification service. It is an output of theĀ .

Class diagram

Tag

This new addition to the notification class would let us group notification together to be sent as a single, consolidated message later.

DigestConfiguration

Digest configuration will define how messages can be consolidated. The idea here is to let each of the services define possible ruling for the message digest. Each configuration will contain the following fields:

DigestSubscription

This entity would let each of the user to decide whether or not they would like to use each of the digest configurations.

Activity diagram

Below is the activity diagram describing how notification would deal with digesting notifications and sending them daily. It is split into 4 workflows (from left to right):

  1. Registering a digest configuration. This step is done by the service and provides possible notification consolidation options.
  2. A user subscribing to a specific digest configuration. From this step, the user will no longer receive the notifications for a specific tag as they come but in a form of a single, digested notification.
  3. Notification receiving a notification to send. This workflow deals with deciding whether to send the notification immediately or store it to be digested.
  4. Notification coursing through the digest configuration and sending messages for all the subscribers when the time is appropriate.