# US 11,310,315 B1 · Techniques for directive-based messaging synchronization

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

- Number: US 11,310,315 B1
- Document ID: US11310315B1
- Status: Granted
- Kind: B1
- Application number: 17/226,227
- Filed: 2021-04-09
- Granted: 2022-04-19
- Earliest claimed: 2018-12-31
- Assignees: Meta Platforms, Inc.
- Applicants: Facebook, Inc.
- Inventors: Jason Curtis Jenks; Joshua Scott Evenson; Mohsen M Agsen; Jeremy David Fein; Philippe Vincent Ajoux
- Web page: https://patentgrep.com/patent/US11310315B1

## CPC

- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 16/2379: {Updates performed during online database operations; commit processing}
- H04L 51/04: Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L 51/18: Commands or executable codes
- H04L 51/216: Handling conversation history, e.g. grouping of messages in sessions or threads
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- H04W 4/12: Messaging; Mailboxes; Announcements
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- H04L 51/42: Mailbox-related aspects, e.g. synchronisation of mailboxes
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Techniques for directive-based messaging synchronization are described. In one embodiment, an apparatus may comprise a local network component operative to receive a directive package at a messaging client on a client device; and a local database synchronization component operative to execute the directive package with a messaging-sync virtual machine to modify a local messaging database of the messaging client; and refresh a user interface component of the messaging client in response to modifying the local messaging database of the messaging client. Other embodiments are described and claimed.

## Claims

### Claim 1

A method, comprising:
receiving, by a messaging client executing on a client device, a plurality of executable directives defined by a messaging-database-sync-specific instruction set associated with a first version of a plurality of versions of the messaging client, the plurality of executable directives derived from operations that are agnostic to the plurality of versions of the messaging client; and
executing the plurality of executable directives by a messaging-sync virtual machine to modify a messaging database of the messaging client.

### Claim 2 (depends on 1)

The method of claim 1, wherein modifying the messaging database comprises one or more of: (i) adding a new message to the messaging database, (ii) removing a deleted message from the messaging database, (iii) storing a read receipt in the messaging database, and (iv) modifying an element stored in the messaging database.

### Claim 3 (depends on 1)

The method of claim 1, wherein executing the plurality of executable directives synchronizes the messaging database of the messaging client on the client device with a messaging database of another instance of the messaging client on a different device.

### Claim 4 (depends on 1)

The method of claim 1, wherein executing the plurality of executable directives to modify the messaging database comprises:
determining that a thread for a received message does not exist in the messaging database; and
creating the thread for the received message in the messaging database.

### Claim 5 (depends on 1)

The method of claim 1, each version of the messaging client associated with a respective messaging-database-sync-specific instruction set of a plurality of messaging-database-sync-specific instruction sets, each of the plurality of messaging-database-sync-specific instruction sets based on translations of the operations that are agnostic to the plurality of versions of the messaging client.

### Claim 6 (depends on 5)

The method of claim 5, the messaging-database-sync-specific instruction set supporting conditional statements to modify the messaging database, the plurality of messaging-database-sync-specific instruction sets including the messaging-database-sync-specific instruction set.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
modifying a graphical interface of the messaging client based on the modified messaging database.

### Claim 8

A non-transitory computer-readable storage medium comprising instructions that, when executed by a processor, cause the processor to:
receive, by a messaging client, a plurality of executable directives defined by a messaging-database-sync-specific instruction set associated with a first version of a plurality of versions of the messaging client, the plurality of executable directives derived from operations that are agnostic to the plurality of versions of the messaging client; and
execute the plurality of executable directives by a messaging-sync virtual machine to modify a messaging database of the messaging client.

### Claim 9 (depends on 8)

The computer-readable storage medium of claim 8, wherein modifying the messaging database comprises one or more of: (i) adding a new message to the messaging database, (ii) removing a deleted message from the messaging database, (iii) storing a read receipt in the messaging database, and (iv) modifying an element stored in the messaging database.

### Claim 10 (depends on 8)

The computer-readable storage medium of claim 8, wherein executing the plurality of executable directives synchronizes the messaging database of the messaging client on a device comprising the processor with a messaging database of another instance of the messaging client on a different device.

### Claim 11 (depends on 8)

The computer-readable storage medium of claim 8, wherein the instructions to execute the plurality of executable directives to modify the messaging database comprise instructions that when executed by the processor, cause the processor to:
determine that a thread for a received message does not exist in the messaging database; and
create the thread for the received message in the messaging database.

### Claim 12 (depends on 8)

The computer-readable storage medium of claim 8, each version of the messaging client associated with a respective messaging-database-sync-specific instruction set of a plurality of messaging-database-sync-specific instruction sets, each of the plurality of messaging-database-sync-specific instruction sets based on translations of the operations that are agnostic to the plurality of versions of the messaging client.

### Claim 13 (depends on 12)

The computer-readable storage medium of claim 12, wherein the messaging-database-sync-specific instruction set supports conditional statements to modify the messaging database, the plurality of messaging-database-sync-specific instruction sets including the messaging-database-sync-specific instruction set.

### Claim 14 (depends on 8)

The computer-readable storage medium of claim 8, comprising instructions that when executed by the processor, cause the processor to:
modify a graphical interface of the messaging client based on the modified messaging database.

### Claim 15

An apparatus comprising:
a processor; and
a memory storing instructions that, when executed by the processor, cause the processor to:
receive, by a messaging client executing on the processor, a plurality of executable directives defined by a messaging-database-sync-specific instruction set associated with a first version of a plurality of versions of the messaging client, the plurality of executable directives derived from operations that are agnostic to the plurality of versions of the messaging client; and
execute the plurality of executable directives by a messaging-sync virtual machine to modify a messaging database of the messaging client.

### Claim 16 (depends on 15)

The apparatus of claim 15, wherein modifying the messaging database comprises one or more of: (i) adding a new message to the messaging database, (ii) removing a deleted message from the messaging database, (iii) storing a read receipt in the messaging database, and (iv) modifying an element stored in the messaging database.

### Claim 17 (depends on 15)

The apparatus of claim 15, wherein executing the plurality of executable directives synchronizes the messaging database of the messaging client on the apparatus with a messaging database of another instance of the messaging client on a different device.

### Claim 18 (depends on 15)

The apparatus of claim 15, wherein the instructions to execute the plurality of executable directives to modify the messaging database comprise instructions that when executed by the processor, cause the processor to:
determine that a thread for a received message does not exist in the messaging database; and
create the thread for the received message in the messaging database.

### Claim 19 (depends on 15)

The apparatus of claim 15, each version of the messaging client associated with a respective messaging-database-sync-specific instruction set of a plurality of messaging-database-sync-specific instruction sets, each of the plurality of messaging-database-sync-specific instruction sets based on translations of the operations that are agnostic to the plurality of versions of the messaging client.

### Claim 20 (depends on 19)

The apparatus of claim 19, wherein the messaging-database-sync-specific instruction set supports conditional statements to modify the messaging database, the plurality of messaging-database-sync-specific instruction sets including the messaging-database-sync-specific instruction set.
