Notification Delivery System Using Pre-computed Recipient Lists

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current approaches for delivering notifications over online networks suffer from high latency, particularly when broadcasting to a large audience, as they struggle to handle thousands or millions of notifications efficiently.

Innovation Solution

The system employs multiple types of storage and pre-computes recipient lists offline to reduce latency, using a combination of heavy-weight and light-weight storage for notifications and leveraging different notification channels like toast, push, and in-app notifications, along with an amplifier service to identify recipients and manage online status for timely delivery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If current notification delivery approaches are used to broadcast to a large audience, then the notification can reach all recipients, but the latency becomes unacceptable

Engineering Contradiction:
Improvenotification latencyVSAvoidnotification delivery speed
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The system pre-computes and stores recipient lists for content items before actual notification delivery is needed. When content is uploaded, the amplifier service identifies all potential recipients and stores this information in advance, eliminating the need to compute recipient lists during the notification delivery phase and significantly reducing latency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The notification delivery system is segmented into multiple independent services: the amplifier service for identifying recipients, the presence service for determining online status, and the notification service for actual delivery. This segmentation allows each service to operate independently and efficiently, reducing overall system latency.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If recipient lists are computed in real-time during notification delivery, then accurate recipient identification is achieved, but delivery latency increases significantly

Engineering Contradiction:
Improverecipient identification timeVSAvoidrecipient identification accuracy
Core Design Contradiction:
Loss of timeVSMeasurement precision

Solution Approach 1:

Recipient lists are pre-computed when content is uploaded to the system. The amplifier service identifies all users who would be interested in the content and stores this recipient list in association with the content item. When notification delivery is triggered, the system simply retrieves the pre-computed list rather than computing it in real-time, achieving both speed and accuracy.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If a single storage system is used for all notifications, then system complexity is reduced, but notification delivery efficiency decreases

Engineering Contradiction:
Improvenotification processing efficiencyVSAvoidstorage system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system uses different storage mechanisms optimized for different notification scenarios: a presence service for tracking online status of individual users, and a notification service with pre-computed recipient lists for bulk notification delivery. Each storage component is optimized for its specific purpose, improving overall efficiency despite increased complexity.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10979519B2Broadcasting notifications with low latency
Publication Date: 2021.04.13 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10979519B2 patent drawing
  • US10979519B2 patent drawing
  • US10979519B2 patent drawing

AI summary

Techniques for broadcasting notifications with low latency are provided. A set of recipients for a notification of a content item is determined. The notification is stored in a second notifications storage that is separate from a first notifications storage. A request for one or more notifications is received over a computer network from a client device that is associated with a particular recipient in the set of recipients. In response to receiving the request, first notification data is retrieved from the first notifications storage, second notification data that includes the notification is retrieved from the second notifications storage. The first notification data is combined with the second notification data to generate combined notification data. The combined notification data is transmitted over the computer network to the client device and is stored in the first notifications storage. The notification may be removed from the first notifications storage.