# US 2021/0240698 A1 · Asynchronous remote calls with undo data structures

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0240698 A1
- Document ID: US20210240698A1
- Status: Published application
- Kind: A1
- Application number: 16/823,722
- Filed: 2020-03-19
- Published: 2021-08-05
- Earliest claimed: 2020-01-31
- Assignees: salesforce.com, inc.
- Applicants: salesforce.com, inc.
- Inventors: Trevor Pocock
- Web page: https://patentgrep.com/patent/US20210240698A1

## CPC

- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F 9/547: {Remote procedure calls [RPC]; Web services}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, device and techniques are disclosed for asynchronous remote call with undo data structures. A remote call associated with a database transaction in a local database may be prepared. An undo data structure for the remote call may be stored in a storage. The remote call associated with the database transaction may be transmitted to a remote computing device to be executed by the remote computing device. Performance of the database transaction may begin in the local database. The performance of the database transaction or the remote call has may be determined to have failed. The undo data structure may be transmitted to the remote computing device to be executed.

## Claims

### Claim 1

A computer-implemented method comprising:
preparing, on a computing device, a remote call associated with a database transaction in a local database;
storing, by the computing device in storage accessible to the computing device, an undo data structure for the remote call;
transmitting, by the computing device, the remote call associated with the database transaction to a remote computing device to be executed by the remote computing device;
beginning, by the computing device, performance of the database transaction in the local database;
determining, by the computing device, that at least one of the performance of the database transaction and the remote call has failed; and
transmitting, by the computing device, the undo data structure to the remote computing device to be remotely executed.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
deleting, by the computing device, the undo data structure from the storage accessible to the computing device.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein determining, by the computing device, that at least one of the commitment of the database transaction and the remote call has failed further comprises receiving an indication that the remote call has failed or timed out.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein determining, by the computing device, that at least one of the commitment of the database transaction and the remote call has failed further comprises failing, by the computing device, to perform the database transaction in the local database.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein determining, by the computing device, that at least one of the commitment of the database transaction and the remote call has failed further comprises determining that the computing device has restarted from an unknown state, and further comprising:
transmitting, by the computing device, undo data structures that have been stored in the storage accessible to the computing device longer than a specified amount of time to one or more remote computing devices to be remotely executed; and
deleting, by the computing device, the undo data structures that have been stored in the storage accessible to the computing device longer than a specified amount of time from the storage accessible to the computing device.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, further comprising:
preparing, on the computing device, a second remote call associated with a second database transaction in the local database;
storing, by the computing device, in the storage accessible to the computing device, a second undo data structure for the second remote call;
transmitting, by the computing device, the second remote call associated with the second database transaction to the remote computing device to be executed by the remote computing device;
beginning, by the computing device, performance of the second database transaction in the local database;
determining, by the computing device, that the second database transaction in the local database was successful;
receiving, by the computing device, an indication that the second remote call was executed successfully on the remote computing device;
committing, by the computing device, the second database transaction in the local database; and
deleting, by the computing device, the second undo data structure from the storage accessible to the computing device.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the undo data structure comprises at least one instruction for undoing changes made by execution of the remote call on the remote computing device.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein the database transaction and the remote call are asynchronous.

### Claim 9

A computer-implemented system for asynchronous remote calls with undo data structures comprising:
one or more storage devices;
a local database; and
a processor that generates prepares a remote call associated with a database transaction in the local database, stores, in the one or more devices, an undo data structure for the remote call, transmits the remote call associated with the database transaction to a remote computing device to be executed by the remote computing device, begins performance of the database transaction in the local database, determines that at least one of the performance of the database transaction and the remote call has failed, and transmits the undo data structure to be the remote computing device to be remotely executed.

### Claim 10 (depends on 9)

The computer-implemented system of claim 9, wherein the processor further deletes the undo data structure from the one or more storage devices.

### Claim 11 (depends on 9)

The computer-implemented system of claim 9, wherein the processor determines that at least one of the commitment of the database transaction and the remote call has failed by receiving an indication that the remote call has failed or timed out.

### Claim 12 (depends on 9)

The computer-implemented system of claim 9, wherein the processor determines that at least one of the commitment of the database transaction and the remote call has failed when the processor fails to perform the database transaction in the local database.

### Claim 13 (depends on 9)

The computer-implemented system of claim 9, wherein the processor determines that at least one of the commitment of the database transaction and the remote call has failed further comprises by determining that the computing device has restarted from an unknown state, and wherein the processor further transmits undo data structures that have been stored in the one or more storage devices longer than a specified amount of time to one or more remote computing devices to be remotely executed, and deletes the undo data structures that have been stored in the one or more storage devices longer than a specified amount of time from the one or more storage devices.

### Claim 14 (depends on 9)

The computer-implemented system of claim 9, wherein the processor further prepares a second remote call associated with a second database transaction in the local database, stores, in the one or more storage devices, a second undo data structure for the second remote call, transmits the second remote call associated with the second database transaction to the remote computing device to be executed by the remote computing device, begins performance of the second database transaction in the local database, determines that the second database transaction in the local database was successful, receives an indication that the second remote call was executed successfully on the remote computing device, commits the second database transaction in the local database, and deletes the second undo data structure from the one or more storage devices.

### Claim 15 (depends on 9)

The computer-implemented system of claim 9, wherein the undo data structure comprises at least one instruction for undoing changes made by execution of the remote call on the remote computing device.

### Claim 16 (depends on 9)

The computer-implemented system of claim 9, wherein the database transaction and the remote call are asynchronous.

### Claim 17

A system comprising: one or more computers and one or more storage devices storing instructions which are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:
preparing a remote call associated with a database transaction in a local database;
storing, in a storage, an undo data structure for the remote call;
transmitting the remote call associated with the database transaction to a remote computing device to be executed by the remote computing device;
beginning performance of the database transaction in the local database;
determining that at least one of the performance of the database transaction and the remote call has failed; and
transmitting the undo data structure to the remote computing device to be remotely executed.

### Claim 18 (depends on 17)

The system of claim 17, wherein the instructions cause the one or more computers to further perform operations further comprising:
deleting the undo data structure from the storage.

### Claim 19 (depends on 17)

The system of claim 17, wherein the instructions that cause the one or more computers to perform operations comprising determining that at least one of the commitment of the database transaction and the remote call has failed further comprises determining that the computing device has restarted from an unknown state, and wherein the instructions further cause the one or more computers to perform operations comprising:
transmitting undo data structures that have been stored in the storage longer than a specified amount of time to one or more remote computing devices be remotely executed; and
deleting the undo data structures that have been stored in the storage accessible to the computing device longer than a specified amount of time from the storage.

### Claim 20 (depends on 17)

The system of claim 17, wherein the instructions cause the one or more computers to further perform operations comprising:
Preparing a second remote call associated with a second database transaction in the local database;
storing, in the storage, a second undo data structure for the second remote call;
transmitting the second remote call associated with the second database transaction to the remote computing device to be executed by the remote computing device;
beginning performance of the second database transaction in the local database;
determining that the second database transaction in the local database was successful;
receiving an indication that the second remote call was executed successfully on the remote computing device;
committing the second database transaction in the local database; and
deleting the second undo data structure from the storage.
