IP Library Granted Patent US 11,150,939
Granted Patent B2
US 11,150,939 · App. 16/289,479 · Granted Oct 19, 2021

Composite batching to manage throughput for online commerce applications

Inventors: Ashraya Raj Mathur (Fremont, CA); Ranjeeth Karthik Selvan Kathiresan (Concord, CA); Samir Pilipovic (Santa Clara, CA); Jean Steriti (San Jose, CA); Ronnie Fong (San Jose, CA); Anshul Kumar (Cupertino, CA)
Assignee: salesforce.com, inc.
G06F9/466G06F9/547G06Q40/12H04L63/08
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,150,939
App. No.
16/289,479
Granted
Oct 19, 2021
Kind
B2
Abstract

Embodiments regard composite batching to manage throughput for online commerce applications. An embodiment of one or more storage mediums include instructions for processing online transaction requests for an order management service to generate transaction records, the online transaction requests including at least a first type of transaction and a second type of transaction; accumulating the transaction records in a storage; automatically determining a batch size for application program interface (API) requests for the transaction records and a frequency rate for the API requests based at least in part on a throughput rate for the processed transaction requests; and process the API requests to the order management service.

Claims (56)

1. One or more non-transitory computer-readable storage mediums having stored thereon executable computer program instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

processing a plurality of online transaction requests for an order management service to generate transaction records, the online transaction requests including at least a first type of commerce transaction and a second, different type of commerce transaction;

accumulating the processed transaction records in a storage;

determining throughput rates for processing of one or more sequences of the transaction records;

generating application program interface (API) requests for the one or more sequences of transaction records, including automatically selecting a type of API request and determining a batch size and a frequency rate for the API requests based at least in part on the determined throughput rates for the one or more sequences of transaction records; and

processing the generated API requests to the order management service according to the determined batch size and frequency rate.

2. The one or more storage mediums of claim 1 , wherein the first type of commerce transaction is a Business-to-Consumer (B2C) transaction and the second type of commerce transaction is a Business-to-Business (B2B) transaction.

3. The one or more storage mediums of claim 1 , wherein the executable computer program instructions further include instructions for:

validating authentication to the order management service and validating data formats of the plurality of online transaction requests, including validating data formats for the first type of commerce transaction and a second type of commerce transaction.

4. The one or more storage mediums of claim 1 , wherein the executable computer program instructions further include instructions for:

dynamically throttling the accumulated API requests for the transaction records based on one or more resource limitations.

5. The one or more storage mediums of claim 1 , wherein:

determining throughput rates for processing of the one or more sequences of transaction records includes determining the throughput rate as being one of a low throughput or a high throughput; and

the executable computer program instructions further include instructions for:

utilizing a first type of API request if a sequence of transaction records has a low throughput and utilizing a second type of API request if the sequence of transaction records has a high throughput.

6. The one or more storage mediums of claim 5 , wherein a sequence of transaction records has a low throughput if a total number of transaction records accumulated in a specified time period is less than a threshold, and the sequence of transaction records has a high throughput if the total number of transaction records accumulated in the specified time period is greater than or equal to the threshold.

7. The one or more storage mediums of claim 5 , wherein the first type of API request is a SOAP (Simple Object Access Protocol) API request and the second type of API is a REST (Representational State Transfer) Bulk API request.

8. The one or more storage mediums of claim 1 , wherein processing the generated API requests to the order management service includes processing the API requests in parallel by a pool of worker threads.

9. The one or more storage mediums of claim 1 , wherein processing the plurality of online transaction requests includes maintaining object hierarchies, relationships, and dependencies for any of the plurality of online transaction requests.

10. The one or more storage mediums of claim 9 , wherein maintaining object hierarchies, relationships, and dependencies includes receiving identifications from the order management service and applying the received identifications for following transaction records.

11. A system comprising:

one or more processors;

a data storage to store data, including data for online transaction requests; and

a network interface to receive the online transaction requests for an order management service, wherein the system is to:

process a plurality of online transaction requests for the order management service to generate transaction records, the online transaction requests including at least a first type of commerce transaction and a second, different type of commerce transaction;

accumulate the processed transaction records in a storage;

determine throughput rates for processing of one or more sequences of the transaction records;

generate application program interface (API) requests for the one or more sequences of transaction records, including automatically selecting a type of API request and determining a batch size and a frequency rate for the API requests based at least in part on the determined throughput rates for the transaction records; and

process the generated API requests to the order management service according to the determined batch size and frequency rate.

12. The system of claim 11 , wherein the first type of commerce transaction is a Business-to-Consumer (B2C) transaction and the second type of commerce transaction is a Business-to-Business (B2B) transaction.

13. The system of claim 11 , wherein the system is further to:

validate authentication to the order management service and validate data formats of the plurality of online transaction requests, including the system to validate data formats for the first type of commerce transaction and a second type of commerce transaction.

14. The system of claim 11 , wherein the system is further to:

dynamically throttle the accumulated API requests for the transaction records based on one or more resource limitations.

15. The system of claim 11 , wherein:

determining throughput rates for processing of the one or more sequences of transaction records includes the system to determine the throughput rate as being one of a low throughput or a high throughput; and

wherein the system is further to:

utilize a first type of API request if a sequence of transaction records has a low throughput and utilize a second type of API request if the sequence of transaction records has a high throughput.

16. The system of claim 15 , wherein a sequence of transaction records has a low throughput if a total number of transaction records accumulated in a specified time period is less than a threshold, and the sequence of transaction records has a high throughput if the total number of transaction records accumulated in the specified time period is greater than or equal to the threshold.

17. The system of claim 15 , wherein the first type of API request is a SOAP (Simple Object Access Protocol) API request and the second type of API request is a REST (Representational State Transfer) Bulk API request.

18. The system of claim 15 , wherein processing the generated API requests to the order management service includes the system to process the API requests in parallel by a pool of worker threads.

19. The system of claim 11 , wherein processing the plurality of online transaction requests includes the system to maintain object hierarchies, relationships, and dependencies for any of the plurality of online transaction requests.

20. The system of claim 19 , wherein maintaining object hierarchies, relationships, and dependencies includes the system to receive identifications from the order management service and apply the received identifications for following transaction records.

21. A method comprising:

processing a plurality of online transaction requests for an order management service to generate transaction records, the online transaction requests including one or more Business-to-Consumer (B2C) transactions and one or more Business-to-Business (B2B) transactions;

accumulating the processed transaction records in a storage;

determining throughput rates for processing of one or more sequences of the transaction records;

generating application program interface (API) requests for the one or more sequences of transaction records, including automatically selecting a type of API request and determining a batch size and a frequency rate for the API requests based at least in part on the determined throughput rates for the one or more sequences of transaction records; and

process the generated API requests to the order management service according to the determined batch size and frequency rate.

22. The method of claim 21 , further comprising:

dynamically throttling the accumulated API requests for the transaction records based on one or more resource limitations.

23. The method of claim 21 , wherein:

determining throughput rates for processing of the one or more sequences of transaction records including determining the throughput rate as being one of a low throughput or a high throughput; and

further comprising:

utilizing a first type of API request if a sequence of transaction records has a low throughput and utilizing a second type of API request if the sequence of transaction records has a high throughput.

24. The method of claim 21 , wherein processing the plurality of online transaction requests includes maintaining object hierarchies, relationships, and dependencies for any of the plurality of online transaction requests.

Assignments (3)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0399 →
CORRECTIVE ASSIGNMENT TO CORRECT THE OMISSION 6TH OF ASSIGNOR'S NAME PREVIOUSLY RECORDED AT REEL: 048829 FRAME: 0760. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Sep 20, 2021
From: MATHUR, ASHRAYA RAJ; KATHIRESAN, RANJEETH KARTHIK SELVAN; PILIPOVIC, SAMIR; STERITI, JEAN; FONG, RONNIE; KUMAR, ANSHUL
To: SALESFORCE.COM, INC.
Reel/Frame 057549/0175 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2019
From: MATHUR, ASHRAYA RAJ; KATHIRESAN, RANJEETH KARTHIK SELVAN; PILIPOVIC, SAMIR; STERITI, JEAN; FONG, RONNIE
To: SALESFORCE.COM, INC.
Reel/Frame 048829/0760 →
Cited By (1)
US 12,597,027