IP Library › Granted Patent US 12,695,718
Granted Patent B2
US 12,695,718 · App. 18/676,334 · Granted Jul 28, 2026

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,695,718
App. No.
18/676,334
Filed
May 28, 2024
Granted
Jul 28, 2026
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 (65)

1 . A method, comprising:

receiving, via an Application Programming Interface (API), a message that includes a timestamp;

determining that the message is an out-of-order event message based on the timestamp; and

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

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

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

sorting the plurality of event messages and the out-of-order event message based on the plurality of priority levels 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 is 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, 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 , wherein the second out-of-order event message is received via the API.

6 . The method of claim 4 , 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.

7 . The method of claim 4 , wherein the queue of messages is a first queue of messages, 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.

8 . The method of claim 7 , comprising:

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

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

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, 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 , 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, via an Application Programming Interface (API), a message that includes a timestamp;

determining that the message is an out-of-order event message based on the timestamp; and

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

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

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

sorting the plurality of event messages and the out-of-order event message based on the plurality of priority levels 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 is 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 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 second out-of-order event message is received via the API.

16 . The system of claim 14 , wherein the operations 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.

17 . The system of claim 14 , wherein the queue of messages is a first queue of messages, and wherein the operations 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.

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

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

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

19 . 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, and wherein the operations comprise:

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;

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, via an Application Programming Interface (API), a message that includes a timestamp;

determining that the message is an out-of-order event message based on the timestamp; and

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

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2025
From: BARON, BRADLEY; HOLLIS, BENJAMIN RALPH; SHRIVER, GAVIN; CARDWELL, PETER
To: SNAP INC.
Reel/Frame 072568/0714 →
Continuity (4)
Continuation 18154442 · Jan 13, 2023
Continuation 17249899 · Mar 17, 2021
Provisional Application 63003127 · Mar 31, 2020
Related Publication 20240314100A1 · Sep 19, 2024
References Cited (32)
US 5790772A · Badovinatz et al. · 1998 [cited by applicant]
US 5799146A · Badovinatz et al. · 1998 [cited by applicant]
US 6493343B1 · Garcia et al. · 2002 [cited by applicant]
US 6823512B1 · Miller et al. · 2004 [cited by applicant]
US 8190960B1 · Bahadur et al. · 2012 [cited by applicant]
US 8200765B2 · Bittles · 2012 [cited by examiner]
US 8856807B1 · Khapre et al. · 2014 [cited by applicant]
US 10853879B2 · Konduru et al. · 2020 [cited by applicant]
US 11055754B1 · Khapre et al. · 2021 [cited by applicant]
US 11563709B2 · Baron et al. · 2023 [cited by applicant]
US 20020091747A1 · Rehg · 2002 [cited by examiner]
US 20050078605A1 · Huang et al. · 2005 [cited by applicant]
US 20060109857A1 · Herrmann · 2006 [cited by applicant]
US 20080091932A1 · Mcnutt et al. · 2008 [cited by applicant]
US 20080133283A1 · Backer et al. · 2008 [cited by applicant]
US 20090116489A1 · Hanks · 2009 [cited by applicant]
US 20100165991A1 · Veal · 2010 [cited by examiner]
US 20110252152A1 · Sherry et al. · 2011 [cited by applicant]
US 20140036936A1 · Bui et al. · 2014 [cited by applicant]
US 20150066881A1 · Sundaram et al. · 2015 [cited by applicant]
US 20160042043A1 · Nguyen · 2016 [cited by examiner]
US 20160105814A1 · Hurst et al. · 2016 [cited by applicant]
US 20160156502A1 · Fugitt et al. · 2016 [cited by applicant]
US 20200257693A1 · Pounds et al. · 2020 [cited by applicant]
US 20210306293A1 · Baron et al. · 2021 [cited by applicant]
US 20230208800A1 · Baron et al. · 2023 [cited by applicant]
“U.S. Appl. No. 17/249,899, Notice of Allowance mailed Sep. 20, 2022”, 8 pgs. [cited by applicant]
“U.S. Appl. No. 18/154,442, Non Final Office Action mailed Oct. 26, 2023”, 7 pgs. [cited by applicant]
“U.S. Appl. No. 18/154,442, Notice of Allowance mailed Feb. 22, 2024”, 7 pgs. [cited by applicant]
“U.S. Appl. No. 18/154,442, Response filed Jan. 23, 2024 to Non Final Office Action mailed Oct. 26, 2023”, 8 pgs. [cited by applicant]
U.S. Appl. No. 17/249,899 U.S. Pat. No. 11,563,709, filed Mar. 17, 2021, Messaging System of Partial and Out-of-Order Events. [cited by applicant]
U.S. Appl. No. 18/154,442, filed Jan. 13, 2023, Messaging System of Partial and Out-of-Order Events. [cited by applicant]