Stubbing Service for Consistent Distributed Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed-services environments, creating a consistent testing environment is challenging due to dependencies between services, which leads to overhead and instability in replicating testing conditions over time.

Innovation Solution

A stubbing service is introduced to record and playback consistent replies to requests, operating in various modes such as record, playback, auto, pass-through, and verification to maintain a stable testing environment without relying on the actual services.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If services are allowed to change over time to maintain adaptability, then service evolution and improvement are enabled, but testing consistency and reliability deteriorate because replies vary across test runs

Engineering Contradiction:
Improveservice evolutionVSAvoidtesting consistency
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The stubbing service performs preliminary actions by recording replies from services during normal operation before testing occurs. These recorded replies are stored and later replayed during testing to ensure consistent results. This preliminary recording action enables reliable testing without requiring services to remain static, as the stubbed replies capture the service behavior at a specific point in time for reproducible test conditions.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If manual staging of consistent replies is implemented to achieve testing consistency, then testing reliability improves, but time overhead and resource consumption increase significantly

Engineering Contradiction:
Improvetesting consistencyVSAvoidstaging overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The stubbing service implements self-service by automatically recording replies from services and making them available for testing without requiring manual intervention. The system autonomously captures service responses, stores them, and replays them during testing, eliminating the need for operators to manually stage consistent replies. This automation dramatically reduces time overhead and resource consumption while maintaining testing consistency.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If services operate independently with separate control entities to maintain service autonomy, then service independence and flexibility improve, but testing complexity increases due to multiple coordination points

Engineering Contradiction:
Improveservice independenceVSAvoidtesting coordination
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The stubbing service acts as an intermediary between the service under test and its dependencies. Instead of directly coordinating with multiple external service control entities, the stubbing service intercepts calls to dependent services and returns pre-recorded replies. This intermediary layer simplifies testing coordination by replacing complex multi-entity communication with a single local stubbing service, while preserving the independent operation of actual services.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9026589B1Stubbing techniques in distributed-services environments
Publication Date: 2015.05.05 AMAZON TECH INC
  • US9026589B1 patent drawing
  • US9026589B1 patent drawing
  • US9026589B1 patent drawing

AI summary

A stubbing service records requests and corresponding replies for purpose of playing back the recorded replies in response to re-receiving the corresponding requests. In a record mode, the stubbing service may receive a request from a first service intended for a second service. The stubbing service may send the request onto the second service and may, in response, receive a reply to the request from the second service. The stubbing service may then pass the reply onto the first service. When in a playback mode, the stubbing service may directly serve the stored reply to the first service in response to receiving the same request intended for the second service from the first service.