9 Design a notification/alerting service

 

This chapter covers

  • Limiting the feature scope and discussion of a service.
  • Breaking up a service into platform-specific channels.
  • Designing a system for flexible configurations and templates.
  • Handling other typical concerns of a service.

We create functions and classes in our source code to avoid duplication of coding, debugging, and testing, to improve maintainability, and to allow reuse. Likewise, we generalize common functionalities used by multiple services. (Centralization of cross-cutting concerns.)

Sending user notifications is a common system requirement. In any system design discussion, whenever we discuss sending notifications, we should suggest a common Notification Service for the organization.

9.1 Functional Requirements

Our Notification Service should be as simple as possible for a wide range of users, which causes considerable complexity in the functional requirements. There are many possible features that a Notification Service can provide. Given our limited time, we should clearly define some use cases and features for our Notification Service that will make it useful to our anticipated wide user base. A well-defined feature scope will allow us to discern and optimize for its non-functional requirements. After we design our initial system, we can discuss and design for further possible features.

9.1.1 Not for uptime monitoring

 

9.1.2 Users and data

 
 

9.1.3 Recipient channels

 
 
 
 

9.1.4 Templates

 

9.1.5 Trigger conditions

 

9.1.6 Manage subscribers, sender groups, and recipient groups

 
 
 
 

9.1.7 User features

 

9.1.8 Analytics

 
 
 
 

9.2 Non-functional requirements

 
 
 
 

9.3 Initial high-level architecture

 
 
 

9.4 Object Store - Configuring and sending notifications

 
 

9.5 Notification Templates

 
 

9.5.1 Notification Template Service

 
 
 

9.5.2 Additional features

 
 

9.6 Scheduled notifications

 
 
 
 

9.7 Notification Addressee Groups

 
 
 

9.8 Unsubscribe requests

 
 
 
 

9.9 Handling failed deliveries

 
 
 
 

9.10 Client-side considerations regarding duplicate notifications

 
 

9.11 Priority

 
 

9.12 Search

 
sitemap

Unable to load book!

The book could not be loaded.

(try again in a couple of minutes)

manning.com homepage
test yourself with a liveTest