Proxy-Based Synthetic Error Injection for Microservice Reliability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Intermittent errors and latency in network-provided services, such as web applications and virtual machines, make it difficult to proactively identify and mitigate issues, as these problems are often not immediately apparent and can 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 monitoring and validation of how services handle errors and latency by meeting specific criteria such as time frames, status, or request types, with responses customizable via third-party calls or scripts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If synthetic errors and latency are injected to proactively monitor services, then error detection capability is improved, but system complexity increases due to the need for proxy infrastructure and configuration management

Engineering Contradiction:
Improveerror detection capabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A proxy server is introduced as an intermediary component between microservices to inject synthetic errors and latency. The proxy intercepts service calls, modifies them according to configured error scenarios, and forwards them to target services. This intermediary approach enables centralized error injection without modifying the microservices themselves, improving error detection while managing complexity through a dedicated mediation layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The error injection functionality is segmented into separate, configurable components: error type definitions, injection criteria, timing parameters, and validation rules. Each microservice can have independent error configurations, allowing granular control over which services receive which error types. This segmentation enables flexible error testing without requiring complete system reconfiguration.

Inventive Principle:
Principle #1Segmentation

2Reliability

If comprehensive error injection is implemented across all microservices, then validation coverage is improved, but operational overhead increases due to centralized configuration management

Engineering Contradiction:
Improvevalidation coverageVSAvoidoperational overhead
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The proxy server implements universal error injection capabilities that can be applied across multiple microservices with a single configuration framework. The same proxy infrastructure handles error injection for different service types, protocols, and error scenarios, eliminating the need for separate validation systems for each service and reducing operational overhead through standardized management.

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

Solution Approach 2:

Error injection parameters such as error type, probability, timing, and duration are made configurable and adjustable without system reconfiguration. The centralized configuration allows operational changes to error scenarios by simply modifying parameter values, enabling flexible validation coverage while maintaining ease of operation through parameter-driven control rather than structural changes.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If error injection criteria are made specific to certain services and conditions, then measurement precision is improved, but device complexity increases due to filtering and scheduling mechanisms

Engineering Contradiction:
Improveerror injection precisionVSAvoidfiltering mechanism complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The error injection system implements dynamic criteria evaluation that adapts to current service conditions. Filtering mechanisms evaluate multiple dimensions including service identity, request type, timing windows, and environmental conditions in real-time. This dynamic approach enables precise error injection targeted at specific services under specific conditions without requiring static, overly complex filtering rules, as the system naturally adapts to changing operational contexts.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11323348B2API dependency error and latency injection
Publication Date: 2022.05.03 CITRIX SYSTEMS INC
  • US11323348B2 patent drawing
  • US11323348B2 patent drawing
  • US11323348B2 patent drawing

AI summary

The disclosure is directed towards systems and methods for injecting or introducing synthetic errors and latency for testing purposes into microservices provided by one or more servers. A device acting as an intermediary to communication can inject errors into responses or requests traversing the device. The errors can include additional latency, dropped packets, or memory or disk errors. Introducing errors and latency for testing purposes can be used to proactively monitor and identify issues with resources.