IP Library › Granted Patent US 12,021,820
Granted Patent B2
US 12,021,820 · App. 18/154,442 · Granted Jun 25, 2024

Messaging system of partial and out-of-order events

Inventors: Bradley Baron (Seattle, WA); Benjamin Ralph Hollis (Seattle, WA); Gavin Shriver (Seattle, WA); Peter Cardwell (Bainbridge Island, WA)
Assignee: Snap Inc.
H04L51/52H04L47/34H04L47/6215
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 12,021,820
App. No.
18/154,442
Filed
Jan 13, 2023
Granted
Jun 25, 2024
Kind
B2
Art Unit
2457
USPC
709/206
Abstract

Methods, systems, and computer readable medium are provided for receiving an event message in a plurality of event messages, the event message comprising a sequence number and associated data, identifying the event message as an out-of-order event message based on the sequence number, assigning a priority level to the out-of-order event message based on a plurality of priority rules, and placing the out-of-order event message in a primary queue of messages based on the priority level assigned to the event message.

Claims (66)

1. A method, comprising:

receiving, by one or more processors, a message that includes a sequence number;

determining that the message is an out-of-order event message based on the sequence number;

assigning a priority level to the out-of-order event message based on a priority rule; and

placing the out-of-order event message in a queue of messages based on the priority level.

2. The method of claim 1 , wherein the queue of messages comprises a plurality of event messages, further comprising:

sorting the plurality of event messages based on a plurality of priority levels that are assigned to the plurality of event messages.

3. The method of claim 2 , wherein the plurality of priority levels indicates a chronological order in which the plurality of event messages are sent from one or more client devices.

4. The method of claim 1 , wherein the out-of-order event message is a first out-of-order event message, further comprising:

receiving a second out-of-order event message;

identifying content data associated with the second out-of-order event message; and

determining that the content data indicates a data item associated with the second out-of-order event message is missing.

5. The method of claim 4 , further comprising:

determining that the data item can be fetched from a database;

fetching the data item from the database; and

placing the second out-of-order event message in the queue of messages.

6. The method of claim 4 , wherein the queue of messages is a first queue of messages, further comprising:

determining that the data item cannot be fetched from a database; and

placing the second out-of-order event message in a second queue of messages, the second queue of messages being associated with a lower priority ranking in processing compared to the first queue of messages.

7. The method of claim 6 , further comprising:

receiving the data item associated with the second out-of-order event message; and

writing the second out-of-order event message to the database based on the receiving of the data item.

8. The method of claim 1 , wherein the message is received via an Application Programming Interface (API).

9. The method of claim 1 , wherein the out-of-order event message comprises an entity identifier associated with a user that is absent from a conversation, further comprising:

determining a data item associated with the out-of-order event message is missing, the data item corresponding to a system notification that indicates the user has left the conversation.

10. The method of claim 9 , further comprising:

determining that a user profile associated with the user can be fetched from a database;

fetching the user profile from the database;

generating the data item based on the user profile; and

writing the out-of-order event message to the database based on the data item.

11. A system comprising:

a memory storing instructions; and

one or more hardware processors communicatively coupled to the memory and configured by the instructions to perform operations comprising:

receiving a message that includes a sequence number;

determining that the message is an out-of-order event message based on the sequence number;

assigning a priority level to the out-of-order event message based on a priority rule; and

placing the out-of-order event message in a queue of messages based on the priority level.

12. The system of claim 11 , wherein the queue of messages comprises a plurality of event messages, and wherein the operations further comprise:

sorting the plurality of event messages based on a plurality of priority levels that are assigned to the plurality of event messages.

13. The system of claim 12 , wherein the plurality of priority levels indicates a chronological order in which the plurality of event messages are sent from one or more client devices.

14. The system of claim 11 , wherein the out-of-order event message is a first out-of-order event message, and wherein the operations further comprise:

receiving a second out-of-order event message;

identifying content data associated with the second out-of-order event message; and

determining that the content data indicates a data item associated with the second out-of-order event message is missing.

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

determining that the data item can be fetched from a database;

fetching the data item from the database; and

placing the second out-of-order event message in the queue of messages.

16. The system of claim 14 , wherein the queue of messages is a first queue of messages, and wherein the operations further comprise:

determining that the data item cannot be fetched from a database; and

placing the second out-of-order event message in a second queue of messages, the second queue of messages being associated with a lower priority ranking in processing compared to the first queue of messages.

17. The system of claim 16 , wherein the operations further comprise:

receiving the data item associated with the second out-of-order event message; and

writing the second out-of-order event message to the database based on the receiving of the data item.

18. The system of claim 11 , wherein the out-of-order event message comprises an entity identifier associated with a user that is absent from a conversation, further comprising:

determining a data item associated with the out-of-order event message is missing, the data item corresponding to a system notification that indicates the user has left the conversation.

19. The system of claim 18 , further comprising:

determining that a user profile associated with the user can be fetched from a database;

fetching the user profile from the database;

generating the data item based on the user profile; and

writing the out-of-order event message to the database based on the data item.

20. A non-transitory computer-readable medium comprising instructions that, when executed by a hardware processor of a machine, cause the machine to perform operations comprising:

receiving a message that includes a sequence number;

determining that the message is an out-of-order event message based on the sequence number;

assigning a priority level to the out-of-order event message based on a priority rule; and

placing the out-of-order event message in a queue of messages based on the priority level.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE FIRST NAME OF THE 2ND INVENTOR FROM BENJMAIN TO BENJAMIN PREVIOUSLY RECORDED ON REEL 62373 FRAME 629. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 21, 2024
From: BARON, BRADLEY; HOLLIS, BENJAMIN RALPH; SHRIVER, GAVIN; CARDWELL, PETER
To: SNAP INC.
Reel/Frame 067473/0516 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2023
From: BARON, BRADLEY; HOLLIS, BENJMAIN RALPH; SHRIVER, GAVIN; CARDWELL, PETER
To: SNAP INC.
Reel/Frame 062373/0629 →
Continuity (3)
Continuation 17249899 · Mar 17, 2021
Provisional Application 63003127 · Mar 31, 2020
Related Publication 20230208800A1 · Jun 29, 2023