IP Library Granted Patent US 11,838,248
Granted Patent B2
US 11,838,248 · App. 17/590,807 · Granted Dec 5, 2023

Managing and executing serverless function command sets in a messaging service

Inventor: Eric Sven-Johan Swildens (Los Altos Hills, CA)
Assignee: DigitalOcean, LLC
H04L51/046H04L67/02
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,838,248
App. No.
17/590,807
Granted
Dec 5, 2023
Kind
B2
Abstract

A serverless function execution system enables fast, efficient and flexible deployment and execution of serverless functions. User commands are received from external messaging systems that cause functions to be executed. A serverless function associated with the user command is determined and the serverless function is executed in an isolation container at a function computation server. A response from the execution of the serverless function is sent to the external messaging system.

Claims (57)

1. A method, comprising:

receiving, at a messaging server, a user textual message, the user textual message comprised of a command prefix and one or more subcommands;

determining an API endpoint associated with a first subcommand of the one or more subcommands and the command prefix;

routing one or more parameters from the user textual message to the API endpoint;

receiving the one or more parameters at the API endpoint;

executing a serverless function within an isolation container in response to the received one or more parameters by executing function code using one or more associated function source code locations;

returning a result of the execution of the serverless function to the messaging server.

2. The method as recited in claim 1 , further comprising:

retrieving the function code by referring to an app definition associated with the user textual message;

selecting a compute server based on the user textual message;

causing the selected compute server to execute the function code.

3. The method as recited in claim 2 , further comprising:

storing a plurality of app definitions;

wherein each app definition includes a mapping of user textual message subcommands to function code.

4. The method as recited in claim 2 , wherein an app is associated with a user textual message command prefix.

5. The method as recited in claim 1 , wherein an app is associated with a user textual message command prefix, and wherein an app is comprised of one or more subcommands.

6. The method as recited in claim 1 , wherein an app is associated with a user textual message command prefix, wherein an app is comprised of one or more subcommands, and wherein each of the one or more subcommands is mapped to one or more functions.

7. The method as recited in claim 1 , further comprising:

storing a history of functions that were executed by users and identities of the users.

8. One or more non-transitory computer-readable storage media, storing one or more sequences of instructions, which when executed by one or more processors cause performance of:

receiving, at a messaging server, a user textual message, the user textual message comprised of a command prefix and one or more subcommands;

determining an API endpoint associated with a first subcommand of the one or more subcommands and the command prefix;

routing one or more parameters from the user textual message to the API endpoint;

receiving the one or more parameters at the API endpoint;

executing a serverless function within an isolation container in response to the received one or more parameters by executing function code using one or more associated function source code locations;

returning a result of the execution of the serverless function to the messaging server.

9. The one or more non-transitory computer-readable storage media as recited in claim 8 , further comprising:

retrieving the function code by referring to an app definition associated with the user textual message;

selecting a compute server based on the user textual message;

causing the selected compute server to execute the function code.

10. The one or more non-transitory computer-readable storage media as recited in claim 9 , further comprising:

storing a plurality of app definitions;

wherein each app definition includes a mapping of user textual message subcommands to function code.

11. The one or more non-transitory computer-readable storage media as recited in claim 9 , wherein an app is associated with a user textual message command prefix.

12. The one or more non-transitory computer-readable storage media as recited in claim 8 , wherein an app is associated with a user textual message command prefix, and wherein an app is comprised of one or more subcommands.

13. The one or more non-transitory computer-readable storage media as recited in claim 8 , wherein an app is associated with a user textual message command prefix, wherein an app is comprised of one or more subcommands, and wherein each of the one or more subcommands is mapped to one or more functions.

14. The one or more non-transitory computer-readable storage media as recited in claim 8 , further comprising:

storing a history of functions that were executed by users and identities of the users.

15. A system, comprising:

a messaging server, implemented at least partially in hardware, configured to:

receive a user textual message, the user textual message comprised of a command prefix and one or more subcommands;

determine an API endpoint associated with a first subcommand of the one or more subcommands and the command prefix; and

route one or more parameters from the user textual message to the API endpoint;

a function computation system, implemented at least partially in hardware, configured to:

receive the one or more parameters at the API endpoint;

execute a serverless function within an isolation container in response to the received one or more parameters by executing function code using one or more associated function source code locations; and

return a result of the execution of the serverless function to the messaging server.

16. The system as recited in claim 15 , wherein the function computation system is further configured to:

retrieve the function code by referring to an app definition associated with the user textual message;

select a compute server based on the user textual message;

cause the selected compute server to execute the function code.

17. The system as recited in claim 16 , wherein the messaging server is further configured to:

store a plurality of app definitions;

wherein each app definition includes a mapping of user textual message subcommands to function code.

18. The system as recited in claim 16 , wherein an app is associated with a user textual message command prefix.

19. The system as recited in claim 15 , wherein an app is associated with a user textual message command prefix, and wherein an app is comprised of one or more subcommands.

20. The system as recited in claim 15 , wherein an app is associated with a user textual message command prefix, wherein an app is comprised of one or more subcommands, and wherein each of the one or more subcommands is mapped to one or more functions.

Assignments (4)
RELEASE OF SECURITY INTEREST RECORDED AT REEL 059546, FRAME 0271. Recorded May 15, 2025
From: KEYBANK NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: DIGITALOCEAN, LLC
Reel/Frame 071275/0529 →
PATENT SECURITY AGREEMENT Recorded May 5, 2025
From: DIGITALOCEAN, LLC
To: MORGAN STANLEY SENIOR FUNDING INC., AS COLLATERAL AGENT
Reel/Frame 071176/0874 →
COLLATERAL ASSIGNMENT OF PATENTS Recorded Mar 30, 2022
From: DIGITALOCEAN, LLC
To: KEYBANK NATIONAL ASSOCIATION
Reel/Frame 059546/0271 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2022
From: SWILDENS, ERIC SVEN-JOHAN
To: DIGITALOCEAN, LLC
Reel/Frame 058972/0020 →
Continuity (3)
Continuation 17102421 · Nov 23, 2020
Provisional Application 62939545 · Nov 22, 2019
Related Publication 20220158960A1 · May 19, 2022