IP Library Granted Patent US 11,520,605
Granted Patent B1
US 11,520,605 · App. 17/804,046 · Granted Dec 6, 2022

Dynamically reordering plugin execution order at an API gateway of a microservices application

Inventors: James Hurst (Oporto, PT); Joshua Schmid (Nuremberg, DE); Shane Connelly (San Rafael, CA); Aapo Talvensaari (Vantaa, FI); Enrique Garcia Cota (Madrid, ES); Harry Bagdi (Seattle, WA); Rob Serafini (San Francisco, CA)
Assignee: KONG INC.
G06F9/44526G06F9/4881G06F9/547
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 11,520,605
App. No.
17/804,046
Granted
Dec 6, 2022
Kind
B1
Abstract

Disclosed embodiments are directed at systems, methods, and architecture for providing execution order and execution for plugins installed on an API gateway associated with a microservices application. In application architectures where features of microservices are implemented as plugins and migrated to an API gateway, the relevant APIs are able to be built lighter weight than otherwise. However, the migration of the features to plugins introduces the potential for error states in the microservice application. To resolve the potential issues, the API gateway takes into consideration a set of native instructions in each of the plugins to determine the execution order thereof. The execution order is determined dynamically in response to requests by the APIs of the microservice application.

Claims (70)

1. A method of executing plugins on an application programming interface (API) gateway to a microservices application, wherein the API gateway is configured for hybrid and multi-cloud microservices and distributed architectures, the API gateway arranged between clients and backend microservices, the method comprising:

installing a plurality of plugins on the API gateway, each plugin centralizing a library function associated with operation of multiple microservices within the microservice application and wherein the plugins collectively have an order of execution on the API gateway;

receiving, by the API gateway, input from of each of the plugins via plugin native instructions, the plugin native instructions indicate a preference of execution order and a preference of execution conditions;

reordering the order of execution, by the API gateway, of the plugins based on the preference of execution order in plugin native instructions; and

delaying execution of respective plugins on the API gateway until the preference of execution conditions is met.

2. The method of claim 1 , wherein the preference of execution indicated by a first plugin is any of:

to execute prior to a specific second plugin;

to execute after a specific third plugin;

to execute before all other plugins;

to execute after all other plugins;

to execute before a first functional group of plugins has executed; or to execute after a second functional group of plugins has executed.

3. The method of claim 1 , wherein a result of a first plugin is provided to a second plugin as input, wherein the first plugin is ordered before the second plugin in execution order.

4. The method of claim 1 , further comprising:

receiving, by the API gateway, a request from a microservice that includes multiple plugin calls to a subset of the plurality of plugins; and

in real-time, reordering the subset of the plurality of plugins based on the plugins within the subset.

5. A method of executing plugins on an application programming interface (API) gateway to a microservices application comprising:

installing a plurality of plugins on the API gateway, each plugin configured to perform an application function;

evaluating, by the API gateway, internal calls of each of the plugins that indicate a preference of execution order; and

generating an order of execution, by the API gateway, of the plugins based on the preference of execution order.

6. The method of claim 5 , wherein the preference of execution indicated by a first plugin is any of:

to execute prior to a specific second plugin;

to execute after a specific third plugin;

to execute before all other plugins;

to execute after all other plugins;

to execute before a first functional group of plugins has executed; or to execute after a second functional group of plugins has executed.

7. The method of claim 5 , further comprising:

receiving, by the API gateway, a request from a microservice that includes multiple plugin calls to a subset of the plurality of plugins; and

in real-time, reordering the subset of the plurality of plugins based on the plugins within the subset.

8. The method of claim 5 , wherein a result of a first plugin is provided to a second plugin as input, wherein the first plugin is ordered before the second plugin in execution order.

9. The method of claim 5 , further comprising:

receiving, by the API gateway, an indication of a current state of the microservices application; and

reordering the order of execution, by the API gateway of the plugins based on the current state of the microservices application.

10. The method of claim 5 , further comprising:

receiving, by the API gateway, an indication from a first plugin of a preferred execution condition of the first plugin; and

delaying execution of the first plugin on the API gateway until the preferred execution condition is met.

11. The method of claim 5 , further comprising:

receiving, by the API gateway, an indication from a first plugin of a preferred execution condition of the first plugin;

modifying, by the API gateway, a state of the API gateway to match the preferred execution condition; and

in response to said modifying, executing the first plugin on the API gateway.

12. The method of claim 5 , wherein said evaluating internal calls of each of the plugins includes any of:

parsing plugin code to identify objects used and seek matching objects in other plugins; or

executing plugin native instructions.

13. A system of executing plugins on an application programming interface (API) gateway to a microservices application comprising:

a set of microservices arranged into a microservice application; and

an API gateway including a memory with a plurality of plugins installed thereon, each plugin configured to perform an application function associated with the microservice application, wherein the set of microservices are communicatively connected to the API gateway, the memory of the API gateway including instructions that when executed cause the API gateway to:

evaluate internal calls of each of the plugins that indicate a preference of execution order; and

generate an order of execution of the plugins based on the preference of execution order.

14. The system of claim 13 , wherein the preference of execution indicated by a first plugin is any of:

to execute prior to a specific second plugin;

to execute after a specific third plugin;

to execute before all other plugins;

to execute after all other plugins;

to execute before a first functional group of plugins has executed; or to execute after a second functional group of plugins has executed.

15. The system of claim 13 , the instructions further comprising:

receiving, by the API gateway, a request from a microservice that includes multiple plugin calls to a subset of the plurality of plugins; and

in real-time, reordering the subset of the plurality of plugins based on the plugins within the subset.

16. The system of claim 13 , wherein a result of a first plugin is provided to a second plugin as input, wherein the first plugin is ordered before the second plugin in execution order.

17. The system of claim 13 , the instructions further comprising:

receiving, by the API gateway, an indication of a current state of the microservices application; and

reordering the order of execution, by the API gateway of the plugins based on the current state of the microservices application.

18. The system of claim 13 , the instructions further comprising:

receiving, by the API gateway, an indication from a first plugin of a preferred execution condition of the first plugin; and

delaying execution of the first plugin on the API gateway until the preferred execution condition is met.

19. The system of claim 13 , the instructions further comprising:

receiving, by the API gateway, an indication from a first plugin of a preferred execution condition of the first plugin;

modifying, by the API gateway, a state of the API gateway to match the preferred execution condition; and

in response to said modifying, executing the first plugin on the API gateway.

20. The system of claim 13 , wherein said evaluating internal calls of each of the plugins includes any of:

parsing plugin code to identify objects used and seek matching objects in other plugins; or

executing plugin native instructions.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 61609/0267 Recorded Feb 28, 2025
From: ACQUIOM AGENCY SERVICES LLC
To: KONG INC.
Reel/Frame 070366/0162 →
SECURITY INTEREST Recorded Feb 28, 2025
From: KONG INC.
To: HSBC VENTURES USA INC.
Reel/Frame 070372/0963 →
SECURITY INTEREST Recorded Nov 1, 2022
From: KONG INC.
To: ACQUIOM AGENCY SERVICES LLC
Reel/Frame 061609/0267 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2022
From: HURST, JAMES; SCHMID, JOSHUA; CONNELLY, SHANE; TALVENSAARI, AAPO; COTA, ENRIQUE GARCIA; BAGDI, HARRY; SERAFINI, ROB
To: KONG INC.
Reel/Frame 061512/0855 →