Proxy-Based Synthetic Error Injection for Microservice Validation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network-provided services, such as web applications and virtual machines, are often affected by intermittent errors and latency, making it difficult to proactively identify and mitigate issues, as these errors can be unpredictable and go unnoticed for extended periods, especially in complex systems with interactions between services or microservices.

Innovation Solution

A system is configured to introduce synthetic errors and latency, managed through a proxy that injects these conditions into microservice traffic, allowing for proactive validation of error handling by simulating errors and latency across microservices, with customizable timelines and filtering to mimic real-world scenarios, enabling consistent testing and validation of error handling capabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If synthetic errors and latency are introduced to proactively monitor and identify issues with microservices, then the ability to detect and validate error handling is improved, but the system complexity and device complexity increase

Engineering Contradiction:
Improveerror detection capabilityVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

A proxy server is introduced as an intermediary component between microservices to inject synthetic errors and latency. The proxy intercepts, modifies, and forwards requests, enabling error injection without requiring changes to the microservices themselves. This mediator approach improves error detection capability while minimizing the complexity burden on the core microservice architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system creates synthetic copies of real error conditions and latency scenarios through controlled injection. Instead of waiting for organic errors to occur, the proxy generates artificial error responses and latency patterns that mimic real-world failure modes, enabling proactive validation of error handling without requiring actual system failures.

Inventive Principle:
Principle #26Copying

2Reliability

If synthetic errors are injected into microservice traffic to validate error handling, then the reliability of error handling is improved, but the difficulty of detecting and measuring error conditions increases

Engineering Contradiction:
Improveerror handling reliabilityVSAvoiderror detection difficulty
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

The proxy injects distinctive error response codes and patterns into microservice traffic that are easily identifiable and measurable. Synthetic errors use specific HTTP status codes and response formats that differ from organic errors, making them detectable through standardized monitoring and logging mechanisms. This approach maintains reliability improvement while reducing the difficulty of detecting and measuring error conditions.

Inventive Principle:
Principle #32Color changes

3Adaptability or versatility

If a proxy is configured to inject errors and latency into all microservice traffic, then the versatility of error testing is improved, but the loss of time and productivity decrease

Engineering Contradiction:
Improveerror testing versatilityVSAvoidtesting time overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The proxy is configured to inject synthetic errors and latency selectively rather than universally. Configuration parameters control the frequency, type, and target of error injection, allowing partial application of error scenarios to specific microservices or traffic patterns. This selective approach maintains testing versatility while reducing the time overhead compared to exhaustive error injection across all traffic.

Inventive Principle:
Principle #16Partial or excessive action

4Manufacturing precision

If synthetic errors and latency are intentionally introduced to test microservice behavior, then the manufacturing precision of error handling validation is improved, but the object-affected harmful factors increase

Engineering Contradiction:
Improvevalidation precisionVSAvoidsynthetic error impact
Core Design Contradiction:
Manufacturing precisionVSObject-affected harmful factors

Solution Approach 1:

Synthetic errors and latency are injected in advance during testing phases before production deployment. The proxy enables proactive validation of error handling mechanisms under controlled conditions, allowing systems to be hardened against failures before they occur in production. This preliminary testing approach improves validation precision while containing the harmful impact of synthetic errors to non-production environments.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11416362B2Dependency API controlled experiment dashboard
Publication Date: 2022.08.16 CITRIX SYSTEMS INC
  • US11416362B2 patent drawing
  • US11416362B2 patent drawing
  • US11416362B2 patent drawing

AI summary

Described embodiments provide systems and methods for executing a plurality of validation tests to validate a plurality of microservices of one or more services. A device intermediary to a plurality of microservices of one or more services identifies a plurality of validation tests, each of the validation tests configured with a timeline, a target microservice and one of a synthetic error or a latency to implement to validate the target microservice. The device executes a first validation test of the plurality of validation tests to implement, over a first timeline, one of a first synthetic error or a first latency in responding to a first target microservice of the plurality of microservices. The device executes a second validation test of the plurality of validation tests to implement, over a second timeline, one of a second synthetic error or a second latency in responding to a second target microservice of the plurality of microservices. The device validates, responsive to executing each of the plurality of validation tests, the plurality of microservices of the one or more services.