IP Library Granted Patent US 12,323,321
Granted Patent B2
US 12,323,321 · App. 18/236,364 · Granted Jun 3, 2025

Adaptive control loop routing via cascading controllers

Inventors: Ji Huang (Bothell, WA); Stefan Gawrys (Seattle, WA)
Assignee: Stripe, Inc.
H04L45/24H04L45/124H04L45/22H04L45/302
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,323,321
App. No.
18/236,364
Granted
Jun 3, 2025
Kind
B2
Abstract

Aspects of the subject technology include receiving from a user device a request for obtaining data associated with the user device. The request is addressed to a destination device. Aspects also include determining with a first controller whether to transmit the request to the destination device via a first path. The determination is based on a first success rate of the first path. Aspects also include transmitting the request to the destination device via the first path in response to a determination to transmit the request to the destination device via the first path. Aspects also include determining, with a second controller, whether to transmit the request to the destination device via a second path, in response to a determination not to transmit the request via the first path. The determination is based on a second success rate of the second path.

Claims (55)

1. A method comprising:

receiving, by an electronic device from a user device, a request for obtaining data associated with the user device, wherein the request is addressed to a destination device;

determining, with a first controller of the electronic device, whether to transmit the request to the destination device via a first path associated with the first controller based on a first success rate of the first path that is monitored by the first controller;

determining, with the first controller of the electronic device, not to transmit the request to the destination device via the first path; and

in response to determining not to transmit the request to the destination device via the first path, passing the request to a second controller of the electronic device to transmit the request to the destination device via a second path associated with the second controller.

2. The method of claim 1 , wherein the first success rate is based on at least one of an availability of the first path or a latency of the first path.

3. The method of claim 1 , further comprising:

obtaining, by the electronic device and from the destination device, a status of the request; and

updating, based on the status, the first success rate for a subsequent request.

4. The method of claim 1 , wherein determining whether to transmit the request to the destination device comprises:

determining, by the electronic device, an acceptance rate associated with the destination device; and

in response to the acceptance rate being below a minimum acceptance rate, causing, by the electronic device, the request to be transmitted to the destination device.

5. The method of claim 1 , further comprising:

receiving, by the electronic device and after receiving the request, a second request for obtaining second data, wherein the second request is addressed to a second destination device;

determining, by the electronic device and in response to receiving the second request, whether the second controller is available; and

in response to determining that the second controller is not available, transmitting, by the electronic device, the second request to the second destination device via the first path.

6. The method of claim 1 , further comprising, before receiving the request:

arranging, by the electronic device, the first controller and the second controller based on a predetermined prioritization of one or more paths such that the first controller receives the request before the second controller.

7. The method of claim 6 , wherein the predetermined prioritization is based on a first cost associated with the first controller and a second cost associated with the second controller.

8. The method of claim 6 , further comprising:

re-arranging, by the electronic device, the first controller and the second controller based on another predetermined prioritization of the one or more paths such that the second controller receives the request before the first controller.

9. The method of claim 1 , wherein the first controller is a Proportional-Integral-Derivative (PID) controller.

10. An electronic device comprising:

a memory; and

a processor configured to:

receive, by the electronic device from a user device, a request for obtaining data associated with the user device, wherein the request is addressed to a destination device;

determine, with a first controller of the electronic device, whether to transmit the request to the destination device via a first path associated with the first controller, based on a first success rate of the first path that is monitored by the first controller;

determine, with the first controller of the electronic device, not to transmit the request to the destination device via the first path; and

in response to determining not to transmit the request to the destination device via the first path, pass the request to a second controller of the electronic device to transmit the request to the destination device via a second path associated with the second controller.

11. The electronic device of claim 10 , wherein the first success rate is based on at least one of an availability of the first path or a latency of the first path.

12. The electronic device of claim 10 , wherein the processor is further configured to:

obtain, by the electronic device and from the destination device, a status of the request; and

update, based on the status, the first success rate for a subsequent request.

13. The electronic device of claim 10 , wherein determining whether to transmit the request to the destination device comprises:

determining, by the electronic device, an acceptance rate associated with the destination device; and

in response to the acceptance rate being below a minimum acceptance rate, causing, by the electronic device, the request to be transmitted to the destination device.

14. The electronic device of claim 10 , wherein the processor is further configured to:

receive, after receipt of the request, a second request for obtaining second data, wherein the second request is addressed to a second destination device;

determine, by the electronic device and in response to receiving the second request, whether the second controller is available; and

in response to determining that the second controller is not available, transmitting, by the electronic device, the second request to the second destination device via the first path.

15. The electronic device of claim 10 , wherein the processor is further configured to, before receiving the request:

arrange, by the electronic device, the first controller and the second controller based on a predetermined prioritization of one or more paths such that the first controller receives the request before the second controller.

16. The electronic device of claim 15 , wherein the predetermined prioritization is based on a first cost associated with the first controller and a second cost associated with the second controller.

17. The electronic device of claim 15 , wherein the processor is further configured to:

re-arrange, by the electronic device, the first controller and the second controller based on another predetermined prioritization of the one or more paths such that the second controller receives the request before the first controller.

18. A non-transitory computer-readable medium comprising:

computer-readable instructions that, when executed by a processor, cause the processor to perform one or more operations comprising:

receiving, by an electronic device from a user device, a request for obtaining data associated with the user device, wherein the request is addressed to a destination device;

determining, with a first controller of the electronic device, whether to transmit the request to the destination device via a first path associated with the first controller based on a first success rate of the first path that is monitored by the first controller;

determining, with the first controller of the electronic device, not to transmit the request to the destination device via the first path; and

in response to determining not to transmit the request to the destination device via the first path, passing the request to a second controller of the electronic device to transmit the request to the destination device via a second path associated with the second controller.

19. The non-transitory computer-readable medium of claim 18 , wherein the first success rate is based on at least one of an availability of the first path or a latency of the first path.

20. The non-transitory computer-readable medium of claim 18 , wherein the processor is further configured to:

obtain, by the electronic device and from the destination device, a status of the request; and

update, based on the status, the first success rate for a subsequent request.

Assignments (2)
CHANGE OF NAME Recorded Jan 30, 2026
From: STRIPE, INC.
To: STRIPE, LLC
Reel/Frame 074572/0345 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2023
From: HUANG, JI; GAWRYS, STEFAN
To: STRIPE, INC.
Reel/Frame 064928/0281 →