Flow Controller Throttling Web API Service Rate

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solutions for throttling the rate of service in Web APIs often require consumers to implement error-handling code, penalize overactive consumers, or incur unpredictable costs, and are not scalable to accommodate changing provider models.

Innovation Solution

A method and system that utilize a flow controller to queue incoming requests from consumers at a fixed rate determined by their licensed service rate, using a first-in-first-out model, independent of other consumers, to manage the rate of service without rejecting requests or penalizing consumers, thereby maintaining predictable and controlled usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If existing throttling solutions are implemented, then service rate control is achieved, but consumers must implement error-handling code and face unpredictable costs

Engineering Contradiction:
Improveservice rate controlVSAvoiderror-handling implementation
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent introduces a flow controller as an intermediary component between consumers and the Web API service. This flow controller automatically manages request throttling by maintaining queues for each consumer and regulating request flow according to licensed rates, eliminating the need for consumers to implement their own error-handling code for rate limiting while ensuring predictable service rate control.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If existing throttling solutions are implemented, then service rate control is achieved, but consumers are penalized for overactive usage

Engineering Contradiction:
Improveservice rate controlVSAvoidconsumer penalties
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The flow controller performs preliminary actions by pre-allocating queues to each consumer and proactively regulating request flow before rate violations occur. By monitoring and controlling the rate of requests sent to the Web API in advance, the system prevents overactive usage before it happens, eliminating the need for punitive measures against consumers.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If manual throttling approaches are used, then service rate can be controlled, but the system is not scalable to accommodate changing provider models

Engineering Contradiction:
Improveservice rate controlVSAvoidscalability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The flow controller implements segmentation by maintaining separate queues for each consumer, allowing independent rate control for each consumer based on their licensed rate. This segmented approach enables the system to scale to accommodate multiple consumers with different service models and rate limits, while the modular queue-based architecture allows easy adaptation to changing provider requirements.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10367747B2Flow controller automatically throttling rate of service provided by web API
Publication Date: 2019.07.30 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10367747B2 patent drawing
  • US10367747B2 patent drawing
  • US10367747B2 patent drawing

AI summary

A mechanism is provided in a data processing system for automatically throttling the rate of service provided by a Web application programming interface (API) for a software service. A flow controller executing on the data processing system assigns a queue to each consumer of the software service. Responsive to receiving a current request for the software service from a given consumer of the software service, a flow controller executing on the data processing system adds the current request to a given queue assigned to the given consumer. The flow controller sends a next request from the given queue to the Web API based on a licensed rate of service of the given consumer.