Real-Time Resiliency for Distributed System Consistency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed systems, achieving real-time consistency is challenging due to failures in participating systems, leading to prolonged eventual consistency and disappointing user experiences during online service sign-ups, as existing recovery measures are not real-time.

Innovation Solution

Implementing a real-time resiliency mechanism using service instances, Application Programming Interface (API) requests, and a messaging system to fetch and retrieve user data from a cache service and messaging database, ensuring data accuracy and consistency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If asynchronous processing is used to improve system performance and availability, then processing speed and system resilience are improved, but data consistency and reliability deteriorate

Engineering Contradiction:
Improveprocessing speedVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces a messaging system as an intermediary between participating systems. The messaging system receives requests from the front-end system, manages asynchronous processing across multiple participating systems, and ensures data consistency through coordinated communication. This mediator enables asynchronous processing while maintaining reliability through centralized request management and coordination.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If offline recovery mechanisms are used to handle system failures, then system resilience is improved, but response time and user experience deteriorate

Engineering Contradiction:
Improvesystem resilienceVSAvoidresponse time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements a feedback mechanism where the front-end system polls the messaging system to check the status of asynchronous requests. This real-time feedback loop allows the system to detect when processing is complete or failed, enabling immediate user notification. The feedback mechanism transforms offline recovery into a near-real-time process by continuously monitoring request status and responding to users without requiring them to wait passively.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If multiple participating systems process requests asynchronously, then system versatility and functionality are improved, but coordination complexity and detection difficulty worsen

Engineering Contradiction:
Improvesystem functionalityVSAvoidcoordination complexity
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent extracts the coordination complexity from individual participating systems and centralizes it in the messaging system. The messaging system assumes responsibility for managing request routing, status tracking, and coordination between multiple participating systems. This extraction allows each participating system to focus on its specific processing function while the messaging system handles the complex coordination, making the overall system more manageable and easier to detect issues in.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11252233B1Achieving strong consistency in an eventually consistent distributed system
Publication Date: 2022.02.15 INTUIT INC
  • US11252233B1 patent drawing
  • US11252233B1 patent drawing
  • US11252233B1 patent drawing

AI summary

A computer-implemented system and method for achieving strong consistency in an eventually consistent distributed system. The system comprises a database and an application server hosting a computer software product that a user subscribes to in order to access the product via a user device over a network. The application server receives a first service request from the user device for obtaining a first set of features associated with the user. The application server may ensure that the user receives a useable and correct set of features.