Notification Delivery System Using Pre-computed Recipient Lists
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
3Productivity
If a single storage system is used for all notifications, then system complexity is reduced, but notification delivery efficiency decreases
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.
Data Source
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.


