Distributed Data Queuing Service for Reliable Program Interaction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing programmatic interaction mechanisms, such as Web services, face limitations in reliably exchanging data between remote software programs, particularly in ensuring data integrity and handling differing processing capabilities between source and destination programs, and in coordinating interactions among multiple programs.

Innovation Solution

A data queuing service utilizing a distributed storage system to store and retrieve queue elements, allowing for decoupling of producers and consumers, providing high availability and reliability through mirroring and dynamic load balancing across multiple data storage systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If direct data exchange between source and destination programs is implemented, then data exchange capability is enabled, but reliability deteriorates due to program errors, unexpected termination, and network errors

Engineering Contradiction:
Improvedata exchange reliabilityVSAvoidsystem architecture complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A message queue system is introduced as an intermediary component between source and destination programs. The queue stores messages persistently, allowing programs to exchange data indirectly without direct connection. This mediator absorbs the impact of program failures and network errors, ensuring reliable data exchange even when source or destination programs are unavailable or terminate unexpectedly.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If source and destination programs are tightly coupled, then data exchange functionality is achieved, but adaptability deteriorates when programs have different processing capabilities or need to exchange data

Engineering Contradiction:
Improveprogram compatibilityVSAvoiddata integrity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system segments the data exchange process into independent components: message production, message storage, and message consumption. Source programs only need to produce messages in a standardized format, while destination programs consume them at their own pace. This segmentation allows programs with different processing capabilities to interact through the common queue interface, improving adaptability while maintaining data integrity through persistent storage.

Inventive Principle:
Principle #1Segmentation

3Reliability

If data is exchanged directly between programs, then processing speed is maintained, but loss of data occurs due to program termination or network errors

Engineering Contradiction:
Improvedata persistenceVSAvoiddata exchange delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The message queue performs preliminary actions by persistently storing messages as soon as they are produced, before the destination program is ready to consume them. This preliminary storage action ensures data is not lost even if the destination program terminates or experiences delays. The queue maintains the messages in a ready state, allowing immediate retrieval when the destination program becomes available, thus minimizing actual data loss while accepting minimal delay.

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If multiple programs exchange data directly with each other, then comprehensive data exchange is enabled, but device complexity increases due to coordination difficulties

Engineering Contradiction:
Improvemulti-program interactionVSAvoidcoordination complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The message queue serves as a universal interface that multiple source and destination programs can interact with simultaneously. Instead of requiring direct point-to-point connections between every pair of programs, all programs communicate through the common queue infrastructure. This multi-functional interface simplifies coordination complexity while enabling comprehensive data exchange among multiple programs.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10754554B2Providing a reliable distributed queuing service
Publication Date: 2020.08.25 AMAZON TECH INC
  • US10754554B2 patent drawing
  • US10754554B2 patent drawing
  • US10754554B2 patent drawing

AI summary

A method, system, and computer-readable medium is described for facilitating interactions between software programs by providing a reliable data queuing service that enables the programs to store and retrieve elements of data queues. In some situations, the data queuing service is provided to users who purchase usage of the data queuing service for application programs executed by or otherwise affiliated with the users. In addition, accessibility of the data queuing service to remote executing programs may be enhanced via a defined API of the data queuing service, such as a Web services-based API. Availability of the data queuing service may also be enhanced in some situations by using multiple alternative distributed systems for a data queue such that each of the alternative systems stores a subset of the elements of the data queue.