Standalone Decision Service for A/B Testing Integration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current A/B testing systems require complex integration of SDKs into applications, which can be cumbersome and limit flexibility, especially when users want to implement feature flagging and testing as a standalone service for better control and scalability.

Innovation Solution

A customizable decision service is introduced as a standalone, open-source microservice with a REST API, providing simplified endpoints for A/B testing functionality, allowing users to manage feature flags and experiments independently of application development, and offering improved scalability and standardization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If SDKs are integrated into applications for A/B testing, then A/B testing functionality is provided, but integration complexity increases and flexibility decreases

Engineering Contradiction:
ImproveflexibilityVSAvoidintegration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts A/B testing functionality from application-specific SDKs and consolidates it into a standalone decision service. This allows the core testing functionality to be separated from individual applications, reducing integration complexity while maintaining flexibility through centralized management and standardized interfaces.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The decision service provides universal A/B testing capabilities that can be accessed by multiple applications through a common interface. This multi-functional approach eliminates the need for separate SDK integrations in each application, thereby reducing overall integration complexity while enhancing flexibility across the system.

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

2Productivity

If SDKs are integrated into each application, then A/B testing is enabled, but scalability and standardization are limited

Engineering Contradiction:
ImprovescalabilityVSAvoidstandardization
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments A/B testing functionality into a separate, independent decision service that operates autonomously from individual applications. This segmentation enables scalable deployment where the core service can handle multiple applications without requiring proportional increases in integration complexity, thereby improving scalability while maintaining standardization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The decision service acts as an intermediary between applications and A/B testing infrastructure. This mediator layer provides standardized interfaces and centralized control, enabling consistent testing practices across multiple applications while simplifying individual application integrations and improving overall scalability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11663117B2Customizable decision service
Publication Date: 2023.05.30 OPTIMIZELY NORTH AMERICA INC
  • US11663117B2 patent drawing
  • US11663117B2 patent drawing
  • US11663117B2 patent drawing

AI summary

A method of executing an A/B testing service comprises deploying an instance of the A/B testing service between a client device and an A/B testing server and receiving by the A/B testing service from the A/B testing server a software development kit (SDK) key for a client device, the SDK key indicating an A/B testing environment to be associated with the instance. The method further comprises, in response to receiving the SDK key: storing data associated with the A/B testing environment in memory of the client device; providing a HyperText Transfer Protocol (HTTP) application programming interface (API) associated with the instance of the A/B testing service to one or more applications associated with the A/B testing environment; and executing, by a processing device, commands between the client device and the one or more applications on behalf of the A/B testing environment.