IP Library Granted Patent US 50,906
Granted Patent E1
US 50,906 · App. 18/646,005 · Granted Jun 2, 2026

Systems and methods for providing services in a stateless application framework

Inventors: Venkata Ramana Varma Nadimpalli (Fremont, CA); Alexander Y. Shvid (San Jose, CA); Vahini Pobbathi (San Jose, CA); Karl Anton Hennig (Campbell, CA)
Assignee: PayPal, Inc.
G06F9/5027G06F9/445G06F9/4843G06F9/542G06F9/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 50,906
App. No.
18/646,005
Granted
Jun 2, 2026
Kind
E1
Abstract

Methods and systems for providing a stateless application framework are presented. The stateless application framework is utilized by different applications for implementing different workflows. Each workflow may be associated with one or more state machine configurations representing the different states within the workflow. Upon receiving an indication of an event from an application, a stateless application module transmits a job request to a data processing engine based on a current state of the event. When a response is received from the data processing engine, the state application module determines whether the state of the event has been updated since transmitting the job request. If it is determined that the state has been updated, the stateless application module is configured to transmit another job request to the data processing engine based on the updated state of the event.

Claims (58)

1 . A method comprising:

instantiating, by a computer system, a first instance of a stateless application;

accessing, by the first instance of the stateless application, a context database to retrieve a record associated with a user account, wherein the record comprises first context data associated with a context of the user account within a state machine configuration and a first version number associated with a version of the record;

transmitting, by the first instance of the stateless application to a data processing engine, a first job request comprising a job descriptor, the first context data, and the first version number;

in response to receiving, from the data processing engine, a message comprising the first version number, instantiating, by the computer system, a second instance of the stateless application;

accessing, by the second instance of the stateless application, the context database to determine whether the record has been updated since the transmitting of the first job request based on the first version number;

in response to determining that the context record has been updated since the transmitting of the first job request, retrieving, by the second instance of the stateless application, second context data from the record; and

transmitting, by the second instance of the stateless application to the data processing engine, a second job request comprising the job descriptor and the second context data.

2 . The method of claim 1 , further comprising terminating the first instance of the stateless application after transmitting the first job request.

3 . The method of claim 1 , further comprising:

in response to receiving a second message from the data processing engine, instantiating a third instance of the stateless application;

accessing, by the third instance of the stateless application, the context database to update the context of the user account by inserting third context data into the record associated with the user account; and

changing, by the third instance of the stateless application, the version of the record by replacing the first version number with a second version number.

4 . The method of claim 3 , further comprising:

transmitting, by the third instance of the stateless application, a third job request to a second data processing engine, wherein the third job request comprises a second job descriptor, the third context data, and the second version number.

5 . The method of claim 1 , further comprising receiving an indication of an event associated with the user account, wherein the instantiating of the first instance of the stateless application is responsive to receiving the indication of the event.

6 . The method of claim 5 , wherein the first job request is associated with a process within a workflow, and wherein the event is an initiation of the workflow.

7 . The method of claim 6 , wherein the indication comprises the workflow.

8 . The method of claim 5 , wherein the indication comprises an account identifier associated with the user account and an event identifier associated with the event, wherein the method further comprises:

selecting, from a plurality of state machine configurations, the state machine configuration corresponding to the event; and

generating an identifier based on the user account identifier, the event identifier, and a configuration identifier associated with the state machine configuration.

9 . The method of claim 8 , wherein the first job request comprises the identifier.

10 . The method of claim 1 , wherein the context database is external to the stateless application.

11 . A system comprising:

a non-transitory memory; and

one or more hardware processors coupled with the non-transitory memory and configured to read instructions from the non-transitory memory to cause the system to perform operations comprising:

instantiating a first instance of a stateless application;

accessing, by the first instance of the stateless application, a context database to retrieve a record associated with a user account, wherein the record comprises first context data associated with a context of the user account within a state machine configuration and a first version number associated with a version of the record;

transmitting, by the first instance of the stateless application to a data processing engine, a first job request comprising a first job descriptor, the first context data, and the first version number;

in response to receiving a response from the data processing engine, instantiating a second instance of the stateless application;

accessing, by the second instance of the stateless application, the context database to determine whether the record has been updated since the transmitting of the first job request based on the first version number;

in response to determining that the context record has been updated since the transmitting of the first job request, retrieving, by the second instance of the stateless application, second context data from the record; and

transmitting, by the second instance of the stateless application to the data processing engine, a second job request comprising a second job descriptor and the second context data.

12 . The system of claim 11 , wherein the response received from the data processing engine indicates a completion of a job associated with the first job request.

13 . The system of claim 11 , wherein the operations further comprise:

in response to receiving a second response from the data processing engine, accessing the context database to update the state of the user account by inserting third state data to the record associated with the user account, wherein the third state data indicates a third state within the state machine configuration; and

changing the version of the record by replacing the first version number with a second version number in the record.

14 . The system of claim 13 , wherein the operations further comprise:

transmitting a third job request to a second data processing engine, wherein the third job request comprises a third job descriptor, the third context data, and the second version number.

15 . The system of claim 14 , wherein the operations further comprise:

in response to receiving a third response from the second data processing engine, accessing the context database to update the state of the user account by inserting fourth context data to the record associated with the user account, wherein the fourth context data indicates a fourth state within the state machine configuration; and

changing the version of the record based on a third version number.

16 . The system of claim 11 , wherein the operations further comprise receiving an indication of an event associated with the user account, wherein the accessing of the context database and the transmitting of the first job request are responsive to receiving the event.

17 . The system of claim 15 , wherein the first job request is associated with a process within a workflow, and wherein the event is an initiation of the workflow.

18 . The system of claim 11 , wherein the determining that the context record has been updated since the transmitting of the first job request comprises:

retrieving the record from the context database, wherein the record comprises a current version number; and

comparing the first version number against the current version number.

19 . A non-transitory machine-readable medium having stored thereon machine-readable instructions executable to cause a machine to perform operations comprising:

instantiating a first instance of a stateless application;

accessing, by the first instance of the stateless application, a context database to retrieve a record associated with a user account, wherein the record comprises first context data associated with a context of the user account within a state machine configuration and a first version number associated with a version of the record;

transmitting, by the first instance of the stateless application to a data processing engine, a first job request comprising a job descriptor, the first context data, and the first version number;

in response to receiving, from the data processing engine, a message comprising the first version number, instantiating a second instance of the stateless application;

accessing, by the second instance of the stateless application, the context database to determine whether the record has been updated since the transmitting of the first job request based on the first version number;

in response to determining that the context record has been updated since the transmitting of the first job request, retrieving, by the second instance of the stateless application, second context data from the record; and

transmitting, by the second instance of the stateless application to the data processing engine, a second job request comprising the job descriptor and the second context data.

20 . The non-transitory machine-readable medium of claim 19 , wherein the determining that the record has been updated since the transmitting of the first job request comprises:

retrieving the record from the context database, wherein the record comprises a second version number; and

determining that the second version number does not correspond to the first version number, and wherein the second job request further comprises the second version number.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2024
From: HENNIG, KARL ANTON; NADIMPALLI, VENKATA RAMANA VARMA; SHVID, ALEXANDER Y.; POBBATHI, VAHINI
To: PAYPAL, INC.
Reel/Frame 067253/0666 →
Continuity (1)
Reissue 15965092 · Apr 27, 2018
References Cited (22)
US 7716279B2 · Savchenko · 2010 [cited by applicant]
US 8024732B2 · Sheehan · 2011 [cited by examiner]
US 9152533B1 · Fateev · 2015 [cited by applicant]
US 10733018B2 · Nadimpalli · 2020 [cited by examiner]
US 10894215B1 · Brown · 2021 [cited by examiner]
US 20040261022A1 · Deutesfeld · 2004 [cited by applicant]
US 20050044197A1 · Lai · 2005 [cited by applicant]
US 20050262512A1 · Schmidt · 2005 [cited by examiner]
US 20060259604A1 · Kotchavi · 2006 [cited by applicant]
US 20090049155A1 · Robinson · 2009 [cited by applicant]
US 20100100891A1 · Boeckenhauer et al. · 2010 [cited by applicant]
US 20110307703A1 · Ogg et al. · 2011 [cited by applicant]
US 20120110570A1 · Jacobson · 2012 [cited by examiner]
US 20120166481A1 · Dittrich · 2012 [cited by applicant]
US 20120166525A1 · Dittrich · 2012 [cited by examiner]
US 20140108483A1 · Tarta · 2014 [cited by applicant]
US 20140143285A1 · Duff et al. · 2014 [cited by applicant]
US 20180144263A1 · Saxena · 2018 [cited by examiner]
US 20190065349A1 · Sharma · 2019 [cited by applicant]
International Search Report and Written Opinion mailed Jul. 8, 2019 in International Application No. PCT/US2019/029468, 6 pages. [cited by applicant]
International Preliminary Report on Patentability issued Oct. 27, 2020 in International Application No. PCT/US2019/029468, 5 pages. [cited by applicant]
Extended European Search Report dated Dec. 15, 2021 from European Application No. 19793179.3, 12 pages. [cited by applicant]