Skip to content

Notification API: User Guide

This user guide discusses the following concepts regarding the Notification API provided by Sanger Integration Hub:

  1. The purpose of the Notification API: Explains what users of the API can accomplish by using the API.
  2. How to use the Notification API: Explains how the users for the API could use it to send notifications.
  3. Example usages of the Notification API: Lists some example use-cases of the Notification API along with how each example could use the Notification API in detail.

The purpose of this document is to provide users with an overview of the Notification API and what it is designed to achieve. It includes a high-level description of the system architecture but does not explore the detailed technical implementation or the underlying components that support the API. If you need more details, please do not hesitate to contact the Sanger Integration Hub.

Nomenclature

Before going through the rest of the documentation, it is advisable to go through the nomenclature that Notification API uses in order to distinguish different entities.

  • Notification: A notification is a message generated by a system and delivered to a user or service to communicate information, updates, alerts, or events. In the context of the Notification API, a notification represents the payload that is sent through a specified channel (such as Email, Slack, or Microsoft Teams) to inform recipients about a particular event.
  • Channel: A channel refers to a specific communication medium through which notifications are delivered. Each channel represents a particular platform or service used to send messages to users. Examples of channels include:

    • Slack
    • Email
    • FreshService
    • Microsoft Teams

    Note

    Each of these channels involves communicating with an external provider.

    • Slack involves establishing a webhook and communicating with Slack using a Slack webhook.
    • Email involves certain protocols (like SMTP) to communicate with an email service.
    • Other services like FreshService have APIs exposed for applications to programmatically communicate with it.
  • Infrastructure: Infrastructure refers to the underlying systems, services, and resources that support and enable the operation the Notification. In this context, the term "infrastructure" includes the functions (the internal implementation uses Function-as-a-Service (FaaS)), networking, messaging systems, and external service integrations required to process, manage, and deliver notifications across different channels.

  • Asynchronous: Asynchronous refers to operations or processes that occur independently of the main program flow, allowing other tasks to continue without waiting for the operation to complete. In the context of the Notification API, sending notifications asynchronously means the API can initiate a notification request without blocking the application, enabling the system to continue processing other tasks while the notification is delivered in the background.

  • Centre for Enablement (C4E): The Integration Centre for Enablement (C4E) provides guidance and advice, governance and assurance for systems Integration at WSI. It is also responsible for supporting the BAU processes and supporting the Integration Environments - both Production and Staging (i.e. all the testing environments).