IP Library Granted Patent US 10,521,280
Granted Patent B2
US 10,521,280 · App. 15/858,359 · Granted Dec 31, 2019

Event-driven serverless function orchestration

Inventors: Hong Zhang (Palo Alto, CA); Henry Louis Fourie (Livermore, CA); Farhad Sunavala (San Ramon, CA)
Assignee: Futurewei Technologies, Inc.
G06F9/542G06F9/5083
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 10,521,280
App. No.
15/858,359
Granted
Dec 31, 2019
Kind
B2
Abstract

The disclosure relates to technology for coordinating execution of serverless functions. One or more events are received from one or more external sources. The one or more events are mapped to one or more event states of a processing graph according to mapping rules, the one or more event states including one or more actions, and the one or more actions are executed in response to the one or more events satisfying conditions of the mapping rules. An event response is the received in reply to the received one or more events, where the event response is based on execution of one or more tasks corresponding to a sequence of the executed one or more actions.

Claims (49)

1. A method for coordinating execution of serverless functions, comprising:

executing an event state of a function graph after an execution of a previous state of the function graph, wherein the event state includes an expression of a trigger event and one or more actions coupled to the expression, and each action is used for triggering a serverless function;

receiving an event from an event source;

in response to the received event matching the trigger event, mapping the received event to the one or more actions of the event state based on a mapping rule;

executing the one or more actions of the event state to trigger one or more serverless functions to be performed; and

receiving a response from each of the one or more serverless functions based on executing the one or more actions.

2. The method of claim 1 , further comprising:

sequentially or concurrently executing the one or more actions of the event state,

wherein each action of the one or more actions invokes a corresponding serverless function such that a payload or metadata included in the event is passed to the corresponding serverless function for execution.

3. The method of claim 2 , further comprising sending an event response to the event source upon completion of executing a sequence of the one or more actions.

4. The method of claim 3 , wherein the event response includes a single payload or metadata for the sequentially executed one or more actions.

5. The method of claim 3 , wherein the event response includes a combined payload or metadata for the concurrently executed one or more actions.

6. The method of claim 2 , further comprising:

filtering contents of the payload or metadata to modify the payload or metadata based on filtering and transformation criteria; and

combining multiple event responses matching completed actions of the concurrently executed one or more actions of the event state into a payload or metadata of a single event response.

7. The method of claim 1 , further comprising independently executing a subset of the one or more actions of the event state.

8. The method of claim 7 , wherein the subset is nested to define a combination of sequentially and concurrently executed one or more actions.

9. The method of claim 1 , wherein in response to the event not being received, a timeout occurs after a predetermined period of time.

10. The method of claim 1 , wherein the trigger event directs to an expression of events defined in the event state.

11. A device for coordinating execution of serverless functions, comprising:

a non-transitory memory storage comprising instructions; and

one or more processors in communication with the memory, wherein the one or more processors execute the instructions to:

execute an event state of a function graph after an execution of a previous state of the function graph, wherein the event state includes an expression of a trigger event and one or more actions coupled to the expression, and each action is used for triggering a serverless function;

receive an event from an event source;

in response to the received event matching the trigger event, map the received event to the one or more actions of the event state based on a mapping rule;

execute the one or more actions of the event state to trigger one or more serverless functions to be performed; and

receive a response from each of the one or more serverless functions based on executing the one or more actions.

12. The device of claim 11 , wherein the one or more processors further execute the instructions to:

sequentially or concurrently execute the one or more actions of the event state,

wherein each action of the one or more actions invokes a corresponding serverless function such that a payload or metadata included in the event is passed to the corresponding serverless function for execution.

13. The device of claim 12 , wherein the one or more processors further execute the instructions to send an event response to the event source upon completion of executing a sequence of the one or more actions.

14. The device of claim 12 , wherein the one or more processors further execute the instructions to:

filter contents of the payload or the metadata to modify the payload or metadata based on filtering and transformation criteria; and

combine multiple event responses matching completed actions of the concurrently executed one or more actions of the event state into a payload or metadata of a single event response.

15. The device of claim 11 , wherein the one or more processors further execute the instructions to independently execute a subset of the one or more actions of the event state.

16. The device of claim 15 , wherein the subset is nested to define a combination of sequentially and concurrently executed one or more actions.

17. A non-transitory computer-readable medium storing computer instructions for coordinating execution of serverless functions, that when executed by one or more processors, cause the one or more processors to perform the steps of:

executing an event state of a function graph after an execution of a previous state of the function graph, wherein the event state includes an expression of a trigger event and one or more actions coupled to the expression, and each action is used for triggering a serverless function;

receiving an event from an event source;

in response to the received event matching the trigger event, mapping the received event to the one or more actions of the event state based on a mapping rule;

executing the one or more actions of the event state to trigger one or more serverless functions to be performed; and

receiving a response from each of the one or more serverless functions based on executing the one or more actions.

18. The non-transitory computer-readable medium of claim 17 , further causes the one or more processors to perform the steps of:

sequentially or concurrently executing the one or more actions of the event state,

wherein each action of the one or more actions invokes a corresponding serverless function such that a payload or metadata included in the event is passed to the corresponding serverless function for execution.

19. The non-transitory computer-readable medium of claim 18 , further causes the one or more processors to perform the steps of sending an event response to the event source upon completion of executing a sequence of the one or more actions.

20. The non-transitory computer-readable medium of claim 18 , further causes the one or more processors to perform the steps of:

filtering contents of the payload or metadata to modify the payload or metadata based on filtering and transformation criteria; and

combining multiple event responses matching completed actions of the concurrently executed one or more actions of the event state into a payload or metadata of a single event response.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2022
From: FUTUREWEI TECHNOLOGIES, INC.
To: HUAWEI CLOUD COMPUTING TECHNOLOGIES CO., LTD.
Reel/Frame 059682/0738 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2017
From: ZHANG, HONG; FOURIE, HENRY LOUIS; SUNAVALA, FARHAD
To: FUTUREWEI TECHNOLOGIES, INC.
Reel/Frame 044508/0100 →
Continuity (1)
Related Publication 20190205184A1 · Jul 4, 2019