US 12,073,263 B1
Dynamic processing of API requests
Jonathan Thompson, Vienna, VA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Nov. 27, 2019, as Appl. No. 16/698,877.
Int. Cl. G06F 3/01 (2006.01); G06F 8/41 (2018.01); G06F 9/54 (2006.01); G06F 16/901 (2019.01)
CPC G06F 9/54 (2013.01) [G06F 8/433 (2013.01); G06F 16/9024 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method comprising:
receiving control instructions for an API, wherein the control instructions comprise a set of actions associated with the API;
generating a dependency graph that maps out dependencies among the set of actions by:
determining one or more dependency relationships among the set of actions based on at least metadata associated with the control instructions; and
ordering the set of actions based on at least the one or more dependency relationships;
determining an execution plan based on at least the dependency graph, wherein the execution plan specifies an initial arrangement of a request processing pipeline for performing the set of actions, wherein the initial arrangement reflects the one or more dependency relationships among the set of actions;
receiving, from a user computing device, an API request for the API;
processing the API request by performing the set of actions in accordance with the execution plan;
monitoring performance of the set of actions associated with the API over a period of time;
determining a modification to the execution plan is warranted based on at least the monitoring;
dynamically modifying the execution plan based on at least the monitoring, wherein the modified execution plan specifies a rearrangement of the request processing pipeline for performing the set of actions, wherein the rearrangement reflects an ordering of a relationship between two or more actions of the set of actions that is different from that reflected by the one or more dependency relationships; and
processing an additional API request for the API by performing the set of actions in accordance with the modified execution plan.