Asynchronous Dependency Resolver for Web Apps

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional dependency resolution in web applications leads to inefficient code duplication and potential application failures due to delayed notification of dependency modifications, increased memory and network resource usage, and prolonged lead times for dynamic web page updates.

Innovation Solution

An asynchronous dependency resolver that traverses dependency mapping information to initiate near-real-time redeployment of consumer components, incorporates de-duplication processing to share common dependencies, and uses version tracking to manage version compatibility, enabling real-time dependency resolution and optimized executable bundle generation for dynamic web pages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dependency resolution is performed conventionally when an application component is committed, then the dependency relationship is resolved, but consumer components are not timely notified that dependencies have been modified

Engineering Contradiction:
Improvedependency update notification timelinessVSAvoidnotification delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system implements a feedback mechanism where the dependency resolution service subscribes to change events from the application component service. When a dependency component is modified, the service receives a change notification and automatically triggers updates to all consumer components, ensuring timely feedback about dependency changes.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary actions by establishing event subscriptions and dependency relationships in advance. The dependency resolution service proactively subscribes to change events before they occur, enabling automatic notification and response when modifications happen, rather than waiting for manual updates.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If multiple consumer components share similar dependencies, then code reuse is achieved, but deployment leads to duplication of code

Engineering Contradiction:
Improvecode sharing capabilityVSAvoidcode duplication
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The system merges common dependencies into a shared library that is referenced by multiple consumer components. Instead of each consumer component containing its own copy of shared dependencies, the dependency resolution service identifies commonalities and consolidates them into a single shared resource that all consumers can utilize.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared library serves multiple consumer components simultaneously, making the dependency resolution service universal. The same dependency code can be reused across different consumer components without modification, enabling one piece of code to fulfill multiple functions and serve multiple purposes.

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

3Reliability

If dependency updates are performed synchronously, then consistency is maintained, but lead times for dynamic web page updates are prolonged

Engineering Contradiction:
Improvedependency consistencyVSAvoidupdate speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system transitions from static synchronous updates to dynamic asynchronous updates. The dependency resolution service can process updates at different times and paces, allowing the system to adapt to varying update requirements. Critical consistency aspects are maintained while non-critical updates can proceed asynchronously to improve speed.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs preliminary dependency resolution and validation actions before the actual deployment. By preparing update packages and validating dependencies in advance, the system ensures consistency is maintained while the actual deployment can proceed quickly without blocking other operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10083030B1Asynchronous dependency resolution
Publication Date: 2018.09.25 AMAZON TECH INC
  • US10083030B1 patent drawing
  • US10083030B1 patent drawing
  • US10083030B1 patent drawing

AI summary

An asynchronous dependency resolution system receives a request to store a first application component in an application repository, stores a first dependency map for the first application component in a dependency repository, and generates a first executable bundle for the first application component. The asynchronous dependency resolution system determines that the dependency repository comprises a first association between the first application component and a second application component, where the first application component is a dependency of a second application component, obtains source code for the second application component, and generates a second executable bundle for the second application component using the source code for the first and second application components.