This feature is under review
A modern notification system is a combination of software and hardware that provides a means of delivering a message to a set of recipients. For example, notification systems can send an e-mail when a new topic has been added to Wikipedia. The complexity of the notification system is often dependent on the types of messages that must be sent. An e-mail noting when a page has been inserted into Wikipedia is adequate for such a straightforward task. However, notifying individuals when a building is on fire would require real-time interaction, escalation, scheduling, rosters, and fail-over scenarios.
1 Notification system features
1.2 Real-time interaction
1.6 Fail-over scenarios
1.7 Interactive media
Notification system features
A notification system is only as good as the contact data contained within. Uploading recipient data is not ideal, as data can be wrong (miskeyed number or letter), false (purposely wrong data), or invalid (phone number has changed). Therefore, notification systems with opt-in data collection can validate data in realtime for all said errors and more. In addition, due to the escallation of unwanted email (spam) and unwanted calls (do not call list), notification system providers are wary of violating existing laws and/or blacklisting by 3rd parties who carry the notification. An opt-in process of collecting data harbors the provider from unlawful use, because each recipient is giving the notification provider permission to contact him or her.
In the event of a fire, or any emergency situation that requires human intervention, notification systems can provide a way of accepting feedback. The feedback can be used to determine what tasks the system should perform. For example, a chief firefighter, when notified of a pending fire, must acknowledge that the truck is en route, thus eliminating the need for further notifications.
The criticality of an event might change before the event is finally resolved. Sometimes a small failure may trigger a chain of failures that can lead to events that require immediate attention. For example, an e-mail that fails to send is not a significant error, and may be classified as a warning. However, the original incident that noted the e-mail failure may spawn a ping of the mail server responsible for relaying the e-mails. If the ping fails, the event may be escalated to a severe level, to indicate that a more important issue requires resolution.
When deciding the list of recipients to notify of an event, a notification system might take into consideration the hours in which a recipient can be notified. Someone working a midnight shift may be available for handling emergencies between 11:00pm and 7:00am. The system should make no attempt to notify this person outside of those hours. A notification system could take into consideration vacation times, weekends, holidays, and so forth, to prevent notifying people when they are not available.
If a notification system cannot contact the intended party, often it is not sufficient to let the matter drop. In the previous example, the chief firefighter was informed of a pending fire. However, if the chief was assisting a tree-bound cat, the notification might not reach its target. Consequently the system must find another person to notify, typically by scanning a predefined roster.
Highly available systems that include incredibly large pre-arranged percentages of time may not be even able to allot for minimal, yet inherently required scheduled maintenance windows which result in some form of downtime of the systems itself. To mitigate this scenario, these systems typically incorporate levels of redundancy to ensure continued operation in the event part of it cannot. To achieve the goal of high availability (HA), notification within these systems must be taken into consideration for the fai