IP Library Granted Patent US 12689684
Granted Patent B2
US 12689684 · 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 12689684
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.