IP Library Granted Patent US 10,200,330
Granted Patent B2
US 10,200,330 · App. 14/965,632 · Granted Feb 5, 2019

Techniques for ephemeral messaging with a message queue

Inventors: Matthew Steiner (Los Altos, CA); Jeremy Fein (New York, NY); Erik Murphy-Chutorian (Palo Altos, CA); Ting Yang (Princeton, NJ); Pierre-Luc Bertrand (New York, NY); Neil John Fulwiler (New York, NY)
Assignee: FACEBOOK, INC.
H04L51/22H04L51/26H04L7/0337H04L47/622
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 10,200,330
App. No.
14/965,632
Granted
Feb 5, 2019
Kind
B2
Abstract

Techniques for ephemeral message are described. In one embodiment, an apparatus may comprise a delayed-action worker module operative to wake according to a wake timer; determine a current update object for a delayed-action cursor for a recipient update queue for a messaging system, the delayed-action cursor associated with an action delay for the recipient update queue; determine a delayed-action activity for the current update object; perform the delay-action activity for the current update object; determine a next update object for the delayed-action cursor for the recipient update queue; and determine a next wake timer for the delayed-action worker module based on the action delay and a creation time for the next update object. Other embodiments are described and claimed.

Claims (44)

1. An apparatus, comprising:

a processor circuit on a device;

a delayed-action worker module, operative on the processor circuit to:

wake according to a wake timer;

determine a current update object corresponding to an atomic modification to a message inbox for a recipient messaging endpoint in a recipient update queue indicated by a delayed-action cursor, the delayed-action cursor associated with a specific time delay for performing delayed-action activities for the current update object;

determine a delayed-action activity for the current update object;

perform the delayed-action activity for the current update object;

determine a next update object for the delayed-action cursor for the recipient update queue by scanning chronologically forwards through the recipient update queue until the next update object with a delayed-action indicator corresponding to the specific time delay associated with the delayed-action cursor is found;

associate the delayed-action cursor with the next update object; and

determine a next wake time for the delayed-action worker module based on the specific time delay associated with the delayed-action cursor and a creation time for the next update object;

wherein the specific time delay is selected from a pre-defined set of time delays, each time delay in the predefined set being unique time delay, such as to constrain the total number of delayed-action cursors by associating only one delayed-action cursor with each unique time delay.

2. The apparatus of claim 1 , wherein the delayed-action activity comprises adding a message-delete command object to the recipient update queue.

3. The apparatus of claim 1 , wherein the delayed-action activity comprises sending an automated reply to the current update object, further comprising:

the delayed-action worker module operative to determine that the current update object hasn't been manually replied to prior to sending the automated reply.

4. The apparatus of claim 1 , wherein the delayed-action cursor is associated with a delayed-action queue associated with the specific time delay, wherein determining the next update object for the delayed-action cursor for the recipient update queue comprises retrieving the next update object from the delayed-action queue.

5. The apparatus of claim 1 , the current update object comprising a read receipt for a message, wherein the delayed-action activity comprises adding a message-delete command object for the message to the recipient update queue.

6. At least one non-transitory computer-readable storage medium comprising instructions that, when executed, cause a system to:

wake a delayed-action worker according to a wake timer;

determine a current update object corresponding to an atomic modification to a message inbox for a recipient messaging endpoint in a recipient update queue indicated by a delayed-action cursor associated with a specific time delay for performing delayed-action activities for the current update object;

determine a delayed-action activity for the current update object;

perform the delayed-action activity for the current update object;

determine a next update object for the delayed-action cursor for the recipient update queue by scanning chronologically forwards through the recipient update queue until the next update object with a delayed-action indicator corresponding to the specific time delay associated with the delayed-action cursor is found;

associate the delayed-action cursor with the next update object; and

determine a next wake time for the delayed-action worker based on the specific time delay associated with the delay-action cursor and a creation time for the next update object

wherein the specific time delay is selected from a pre-defined set of time delays, each time delay in the predefined set being unique time delay, such as to constrain the total number of delayed-action cursors by associating only one delayed-action cursor with each unique time delay.

7. The non-transitory computer-readable storage medium of claim 6 , wherein the delayed-action activity comprises adding a message-delete command object to the recipient update queue.

8. The non-transitory computer-readable storage medium of claim 6 , wherein the delayed-action activity comprises sending an automated reply to the current update object, comprising further instructions that, when executed, cause a system to:

determine that the current update object hasn't been manually replied to prior to sending the automated reply.

9. The non-transitory computer-readable storage medium of claim 6 , wherein the delayed-action cursor is associated with a delayed-action queue associated with the specific time delay, wherein determining the next update object for the delayed-action cursor for the recipient update queue comprises retrieving the next update object from the delayed-action queue.

10. The non-transitory computer-readable storage medium of claim 6 , the current update object comprising a read receipt for a message, wherein the delayed-action activity comprises adding a message-delete command object for the message to the recipient update queue.

11. The apparatus of claim 2 , the specific time delay defined according to an ephemeral-messaging setting for a message thread of the messaging system.

12. The non-transitory computer-readable storage medium of claim 7 , the specific time delay defined according to an ephemeral-messaging setting for a message thread of the messaging system.

13. The apparatus of claim 4 , further comprising:

the delayed-action worker module operative to scan chronologically forwards through the recipient update queue adding update objects to the delayed-action queue where the update objects have a delayed-action indicator corresponding to the specific time delay.

14. The non-transitory computer-readable storage medium of claim 9 , comprising further instructions that, when executed, cause a system to:

scan chronologically forwards through the recipient update queue adding update objects to the delayed-action queue where the update objects have a delayed-action indicator corresponding to the specific time delay.

15. The apparatus of claim 1 further comprising multiple delayed-action worker modules associated with a recipient update queue for a messaging system.

16. The apparatus of claim 14 , the delayed-action worker modules further operative on the processor circuit to:

lock the recipient update queue prior to performing the delayed-action activity for the current update object; and

unlock the recipient update queue subsequent to performing the next delayed-action activity for the current update object.

17. The non-transitory computer-readable storage medium of claim 6 further comprising instructions that, when executed, cause a system to wake multiple delayed-action workers associated with a recipient update queue in a messaging system.

18. The non-transitory computer-readable storage medium of claim 17 , further comprising instructions that, when executed, cause the delayed-action worker modules to:

lock the recipient update queue prior to performing the delayed-action activity for the current update object; and

unlock the recipient update queue subsequent to performing the next delayed-action activity for the current update object.

Assignments (2)
CHANGE OF NAME Recorded May 5, 2022
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 059858/0387 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2016
From: STEINER, MATTHEW; FEIN, JEREMY; MURPHY-CHUTORIAN, ERIK; YANG, TING; BERTRAND, PIERRE-LUC; FULWILER, NEIL JOHN
To: FACEBOOK, INC.
Reel/Frame 038855/0339 →
Continuity (1)
Related Publication 20170171132A1 · Jun 15, 2017