IP Library Granted Patent US 12,689,684
Granted Patent B2
US 12,689,684 · App. 18/298,937 · Granted Jul 21, 2026

Enqueuing asynchronous tasks

Inventor: Ebrahim Land (San Francisco, CA)
Assignee: DISCORD INC.
H04L67/55H04L47/56G06F9/4881
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,689,684
App. No.
18/298,937
Granted
Jul 21, 2026
Kind
B2
Abstract

The present technology provides an asynchronous task messaging service for a server that supports near real-time communications. The asynchronous task service, as a cloud-based message-oriented middleware, sends messages associated with the tasks back to the community hosting service. A delay is encoded in the task code of the message that sets a delay mechanism that is custom to the task and task code. The tasks sent to the asynchronous task service includes tasks that only need to be executed within a reasonable amount of time (i.e., within a couple of days), tasks that need to be executed as soon as possible but does not make sense after a certain amount of time, and tasks that need to execute with as much effort as is reasonable to happen exactly once.

Claims (60)

1 . A computer-implemented method comprising:

pushing a first task message from a first publisher of a server that supports near real-time communications to a first topic of an asynchronous messaging server, wherein the first topic includes a message queue and places the first task message in the message queue, and wherein the first task message is pushed to a first subscription when the first task message is dequeued;

pushing a second task message from a second publisher to the first topic, wherein the first publisher and the second publisher have different rollout schedules based on respective executable tasks codes of each publisher;

receiving the first task message at a subscriber worker associated with the first publisher, wherein the first task message includes an executable task code;

determining the executable task code is associated with instructions for a delay mechanism; and

setting the delay mechanism by the subscriber worker based on respective executable task code before performing a task described in the first task message.

2 . The computer-implemented method of claim 1 , further comprising:

pushing a third task message from a third publisher of the server that supports near real-time communications to a second topic of the asynchronous messaging server, and wherein the second topic pushes the third task message to a third subscription, and wherein the second topic is associated with latency sensitive tasks;

receiving the third task message at a third subscriber worker associated with the third publisher; and

performing a task described in the third task message.

3 . The computer-implemented method of claim 2 , wherein the task is embedding an image associated with a URL in a message.

4 . The computer-implemented method of claim 1 , further comprising:

receiving a request to create a new topic at the asynchronous messaging server, wherein the new topic is associated with a project with tasks to be performed at the server that supports near real-time communications; and

sending the request to the asynchronous messaging server.

5 . The computer-implemented method of claim 4 , further comprising:

selecting an exactly-once semantic for the new topic.

6 . The computer-implemented method of claim 1 , further comprising:

receiving a request to generate a logical workflow associated with the task, wherein the logical workflow includes subtasks that are triggered by the task.

7 . The computer-implemented method of claim 1 , further comprising:

setting a guard associated with the first publisher, wherein the guard limits a percentage of times that tasks sent from the first publisher are sent to the asynchronous messaging server, wherein the first task message is not limited by the guard.

8 . A system comprising:

memory configured to store instructions;

one or more processors configured to execute the instructions and cause the one or more processors to:

push a first task message from a first publisher of a server that supports near real-time communications to a first topic of an asynchronous messaging server, wherein the first topic includes a message queue and places the first task message in the message queue, and wherein the first task message is pushed to a first subscription when the first task message is dequeued;

push a second task message from a second publisher to the first topic, wherein the first publisher and the second publisher have different rollout schedules based on respective executable tasks codes of each publisher;

receive the first task message at a subscriber worker associated with the first publisher, wherein the first task message includes an executable task code;

determine the executable task code is associated with instructions for a delay mechanism; and

set the delay mechanism by the subscriber worker based on respective executable task code before performing a task described in the first task message.

9 . The system of claim 8 , wherein the one or more processors is configured to execute the instructions and cause the one or more processors to:

push a third task message from a third publisher of the server that supports near real-time communications to a second topic of the asynchronous messaging server, and wherein the second topic pushes the third task message to a third subscription, and wherein the second topic is associated with latency sensitive tasks;

receive the third task message at a third subscriber worker associated with the third publisher; and

perform a task described in the third task message.

10 . The system of claim 9 , wherein the task is embedding an image associated with a URL in a message.

11 . The system of claim 8 , wherein the one or more processors is configured to execute the instructions and cause the one or more processors to:

receive a request to create a new topic at the asynchronous messaging server, wherein the new topic is associated with a project with tasks to be performed at the server that supports near real-time communications; and

send the request to the asynchronous messaging server.

12 . The system of claim 11 , wherein the one or more processors is configured to execute the instructions and cause the one or more processors to:

select an exactly-once semantic for the new topic.

13 . The system of claim 8 , wherein the one or more processors is configured to execute the instructions and cause the one or more processors to:

receive a request to generate a logical workflow associated with the task, wherein the logical workflow includes subtasks that are triggered by the task.

14 . The system of claim 8 , wherein the one or more processors is configured to execute the instructions and cause the one or more processors to:

set a guard associated with the first publisher, wherein the guard limits a percentage of times that tasks sent from the first publisher are sent to the asynchronous messaging server, wherein the first task message is not limited by the guard.

15 . A non-transitory computer readable medium comprising instructions, the instructions, when executed by a computing system, cause the computing system to:

push a first task message from a first publisher of a server that supports near real-time communications to a first topic of an asynchronous messaging server, wherein the first topic includes a message queue and places the first task message in the message queue, and wherein the first task message is pushed to a first subscription when the first task message is dequeued;

push a second task message from a second publisher to the first topic, wherein the first publisher and the second publisher have different rollout schedules based on respective executable tasks codes of each publisher;

receive the first task message at a subscriber worker associated with the first publisher, wherein the first task message includes an executable task code;

determine the executable task code is associated with instructions for a delay mechanism; and

set the delay mechanism by the subscriber worker based on respective executable task code before performing a task described in the first task message.

16 . The non-transitory computer readable medium of claim 15 , wherein the computer readable medium further comprises instructions that, when executed by the computing system, cause the computing system to:

push a third task message from a third publisher of the server that supports near real-time communications to a second topic of the asynchronous messaging server, and wherein the second topic pushes the third task message to a third subscription, and wherein the second topic is associated with latency sensitive tasks;

receive the third task message at a third subscriber worker associated with the third publisher; and

perform a task described in the third task message.

17 . The non-transitory computer readable medium of claim 16 , the task is embedding an image associated with a URL in a message.

18 . The non-transitory computer readable medium of claim 15 , wherein the computer readable medium further comprises instructions that, when executed by the computing system, cause the computing system to:

receive a request to create a new topic at the asynchronous messaging server, wherein the new topic is associated with a project with tasks to be performed at the server that supports near real-time communications; and

send the request to the asynchronous messaging server.

19 . The non-transitory computer readable medium of claim 18 , wherein the computer readable medium further comprises instructions that, when executed by the computing system, cause the computing system to:

select an exactly-once semantic for the new topic.

20 . The non-transitory computer readable medium of claim 15 , wherein the computer readable medium further comprises instructions that, when executed by the computing system, cause the computing system to:

receive a request to generate a logical workflow associated with the task, wherein the logical workflow includes subtasks that are triggered by the task.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2023
From: LAND, EBRAHIM
To: DISCORD INC.
Reel/Frame 063292/0618 →
Continuity (1)
Related Publication 20240348699A1 · Oct 17, 2024
References Cited (24)
US 7945813B1 · Watson · 2011 [cited by examiner]
US 9509529B1 · McAllister · 2016 [cited by examiner]
US 10361985B1 · Shveykin · 2019 [cited by examiner]
US 10908977B1 · Ferstay · 2021 [cited by examiner]
US 20040158831A1 · Amano · 2004 [cited by examiner]
US 20040250060A1 · Diep · 2004 [cited by examiner]
US 20050262205A1 · Nikolov · 2005 [cited by examiner]
US 20070038569A1 · Hickson · 2007 [cited by examiner]
US 20080196039A1 · Garrard · 2008 [cited by examiner]
US 20100269164A1 · Sosnosky · 2010 [cited by examiner]
US 20120059882A1 · Stark · 2012 [cited by examiner]
US 20130304826A1 · Li · 2013 [cited by examiner]
US 20140180788A1 · George · 2014 [cited by examiner]
US 20150271546A1 · Kim · 2015 [cited by examiner]
US 20150381709A1 · Word · 2015 [cited by examiner]
US 20190058772A1 · Ruiz-Meraz · 2019 [cited by examiner]
US 20200059376A1 · Slovetskiy · 2020 [cited by examiner]
US 20200264922A1 · Kamiya · 2020 [cited by examiner]
US 20200394532A1 · Kau · 2020 [cited by examiner]
US 20210298033A1 · Nishiyama · 2021 [cited by examiner]
US 20220345536A1 · Takla · 2022 [cited by examiner]
US 20230123232A1 · Methvin · 2023 [cited by examiner]
US 20230142108A1 · Iyer · 2023 [cited by examiner]
US 20230289214A1 · Tang · 2023 [cited by examiner]