Deferred API Calls with Dependency Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current API systems for interacting with web services, such as data storage and virtual machine management, face inefficiencies in handling asynchronous operations and dependencies, leading to potential bottlenecks and increased complexity in managing job statuses and notifications.

Innovation Solution

The implementation of asynchronous API calls with dependency management, allowing clients to send multiple dependent API calls without waiting for previous calls to complete, and using callback functions for notification of job status, along with advanced features like job tagging and customizable notifications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If synchronous API calls are used to ensure proper sequencing and dependency handling, then reliability is improved, but productivity deteriorates due to blocking wait times

Engineering Contradiction:
Improvedependency handlingVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary actions by sending all dependent API calls in advance without waiting for their completion. The client computer transmits multiple API calls to the server computer before any of them are fully processed, allowing the server to begin processing calls in parallel while maintaining dependency relationships through deferred execution and callback mechanisms.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If asynchronous API calls are used to improve processing speed and reduce wait times, then productivity is improved, but reliability deteriorates due to difficulty in managing dependencies and job statuses

Engineering Contradiction:
Improveprocessing speedVSAvoiddependency management
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements feedback mechanisms through callback functions that are automatically invoked when API calls complete. The server computer sends notifications back to the client computer regarding the status and results of processed API calls, enabling the client to track dependency completion and manage job statuses without continuous polling, thus maintaining reliability while using asynchronous processing.

Inventive Principle:
Principle #23Feedback

3Productivity

If multiple dependent API calls are sent concurrently to reduce total execution time, then productivity is improved, but device complexity increases due to need for tracking and coordinating multiple calls

Engineering Contradiction:
Improveconcurrent processingVSAvoidcoordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The server computer acts as an intermediary that receives, tracks, and coordinates multiple dependent API calls. It maintains internal state information about each call and their dependencies, automatically managing the complexity of coordinating concurrent operations. The server processes calls in the appropriate sequence based on dependencies while allowing the client to send multiple calls concurrently, thus reducing client-side complexity while enabling parallel processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8881182B1Deferred API calls
Publication Date: 2014.11.04 AMAZON TECH INC
  • US8881182B1 patent drawing
  • US8881182B1 patent drawing
  • US8881182B1 patent drawing

AI summary

Techniques are disclosed for a client-and-server architecture where the client makes deferred API calls to the server. The server may receive such a deferred API call, and evaluate whether the call will be executed at the future time specified in the call. The server may use a model of tasks already scheduled to be performed at the future time, or projected to be performed at the future time, and compare those tasks against a projected capacity at the future time. Where there will be sufficient capacity, the server may execute process the deferred API call at the future time, and where there will not be sufficient capacity, the server may inform the client that the call will not be processed at the future time.