Data Proxy Subscription Fan Out for Offline Sync

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies face challenges in providing seamless data synchronization across multiple devices and users, especially in scenarios with intermittent network connectivity, and lack effective conflict resolution mechanisms for distributed applications.

Innovation Solution

The data proxy service enables immediate synchronization of application data across multiple clients and devices, employs optimistic caching and conflict resolution, and allows for customizable data storage and querying, using Plain Old Class Objects (POCOs) and a data proxy architecture that integrates with various data sources, including key-value and object data stores, and supports offline data access and real-time resource tracking.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is synchronized across multiple devices in real-time, then data consistency is improved, but network bandwidth consumption increases

Engineering Contradiction:
Improvedata consistencyVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The system segments data into specific fields and tracks changes at the field level. When a mutation occurs, only the changed fields are synchronized to subscribed devices rather than transmitting entire data sets. This segmentation approach maintains data consistency across devices while minimizing network bandwidth consumption by transmitting only necessary data portions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements optimistic caching at the local device level, allowing devices to store and access data locally without constant network verification. Local quality is maintained by enabling devices to function with cached data when network connectivity is unavailable, while periodic synchronization ensures eventual consistency. This reduces network bandwidth consumption while preserving data reliability.

Inventive Principle:
Principle #3Local quality

2Reliability

If conflict resolution mechanisms are implemented, then data reliability is improved, but system complexity increases

Engineering Contradiction:
Improveconflict resolutionVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements feedback mechanisms through subscription notifications that inform devices of data changes and potential conflicts. When conflicts are detected during synchronization, the system provides feedback to the application layer, enabling intelligent conflict resolution based on application-specific logic. This feedback-driven approach improves data reliability while keeping the core synchronization system relatively simple.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The data proxy service acts as an intermediary between devices and the centralized data source. It handles conflict detection and resolution by mediating between multiple devices that may have conflicting data versions. The proxy maintains the authoritative data state and coordinates synchronizations, simplifying the complexity by centralizing conflict management rather than distributing it across all devices.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If optimistic caching is used, then offline functionality is improved, but data synchronization complexity increases

Engineering Contradiction:
Improveoffline functionalityVSAvoidsynchronization complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by caching data locally on devices before network connectivity is lost. This preliminary caching enables offline functionality by allowing devices to access and modify cached data without network connectivity. The synchronization complexity is managed by using a simple publish-subscribe model that activates when connectivity is restored, automatically propagating changes without complex synchronization protocols.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Devices perform self-service by maintaining local caches and independently determining when to synchronize with the centralized data source. The optimistic caching mechanism allows devices to autonomously function offline, and when online, they automatically detect and resolve conflicts without requiring complex centralized coordination. This self-service approach improves offline functionality while keeping synchronization relatively simple through event-driven updates.

Inventive Principle:
Principle #25Self-service

4Reliability

If real-time notifications are sent to multiple devices, then data freshness is improved, but network traffic increases

Engineering Contradiction:
Improvedata freshnessVSAvoidnetwork traffic
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The system implements partial action by sending notifications only to devices that have active subscriptions to specific data fields. Rather than broadcasting to all devices, the notification mechanism selectively targets only those devices that need the updated information. This partial notification approach maintains data freshness for subscribed devices while minimizing unnecessary network traffic to devices that don't need the updates.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11159634B1Subscription fan out
Publication Date: 2021.10.26 AMAZON TECH INC
  • US11159634B1 patent drawing
  • US11159634B1 patent drawing
  • US11159634B1 patent drawing

AI summary

A technology is provided for a fan out for a subscription. A mutation may be received at a data proxy from an application. The mutation may be sent to the data source via a data access resolver associated with the data proxy. Results for the mutation may be received. At least one subscription may be identified which matches combinations of fields in the results for the mutation. A message for the at least one subscription regarding the mutation may be sent to a messaging service to enable the messaging service to publish the message to devices subscribed to at least one topic for the at least one subscription.