Augmented Notification Service for Scalable Web Consistency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional methods for achieving high scalability and end-to-end state consistency in distributed environments, such as cloud and edge computing, face challenges due to the need for back-end services to be stateful, leading to resource complications, latency, and inconsistent data across microservices.
Innovation Solution
Implementing an augmented notification service control system that separates stateless and stateful operations using REST APIs and a notification service manager, which applies augmentation operations to contextual features, ensuring end-to-end consistency through acknowledgement mechanisms and horizontal scaling.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional pub/sub systems (Kafka, PNDA, Twitter) are used to update UI clients state, then scalability is improved, but end-to-end consistency is sacrificed
Solution Approach 1:
The system segments the notification delivery mechanism into two distinct parts: a stateless event bus that handles event distribution for scalability, and a stateful notification service that manages client connections and acknowledgment for consistency. This segmentation allows each component to optimize for its specific function without compromising the other.
Solution Approach 2:
The notification service acts as an intermediary between the event bus and UI clients. It receives events from the stateless event bus, manages stateful connections to individual clients, ensures reliable delivery through acknowledgment mechanisms, and propagates state changes consistently across all connected clients.
2Loss of information
If all UI clients poll the back-end at frequent intervals, then data freshness is improved, but system load and scaling challenges increase
Solution Approach 1:
Instead of continuous polling, the system uses event-driven periodic action where the back-end service publishes state change events to the event bus, and the notification service propagates these changes to clients at the appropriate moment, eliminating the need for frequent polling while maintaining data freshness.
Solution Approach 2:
The system implements self-service by having the back-end service automatically publish state changes to the event bus when modifications occur, and the notification service automatically propagates these changes to connected clients without requiring explicit polling requests from each client.
3Reliability
If back-end services are made stateful to maintain consistency, then end-to-end consistency is improved, but resource complications and latency increase
Solution Approach 1:
The system segments stateful and stateless functionality into separate services. The event bus remains stateless for simplicity and scalability, while the notification service handles stateful operations (tracking client connections, managing acknowledgment) as a separate component, reducing the complexity burden on the back-end services.
Data Source
AI summary
In one embodiment, a method may use one or more Representational State Transfer (REST) Application Programming Interfaces (APIs) to receive data associated with a web application from a first user interface (UI) client device. The method may use the one or more REST APIs to determine a stateless operation by performing stateless pre-processing on the data associated with the web application and one or more contextual features associated with the stateless operation. The method may determine an augmented notification by applying an augmentation operation on the one or more contextual features and the stateless operation. The method may determine a stateful operation using the augmented notification. The method may receive a request for an update on the data associated with the web application from a second UI client device. In response to receiving the request, the method may communicate the stateful operation to the second UI client device.


