IP Library Granted Patent US 11,005,959
Granted Patent B1
US 11,005,959 · App. 16/788,742 · Granted May 11, 2021

Systems and methods for asynchronous publish-subscribe messaging and acknowledgments

Inventor: Varsha Borhade (Bellevue, WA)
Assignee: T-Mobile USA, Inc.
H04L67/26G06F2209/547
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 11,005,959
App. No.
16/788,742
Granted
May 11, 2021
Kind
B1
Abstract

A publish-subscribe messaging method including: generating a modified first publication message by modifying a first publication message to include a reply-to property that directs a recipient device to acknowledge, to an acknowledgment queue, receipt of the first publication message; publishing the modified first publication message to (i) the acknowledgment queue and (ii) a consumer queue; responsive to the modified first publication message being consumed by one or more subscribers and/or a first timeout for the modified first publication message expiring, deleting the modified first publication message from the consumer queue; and responsive to the acknowledgment queue receiving an acknowledgment for the modified first publication message and/or a second timeout for the modified first publication message expiring, deleting the modified first publication message from the acknowledgment queue.

Claims (62)

1. A publish-subscribe messaging method comprising:

generating a modified first publication message by modifying a first publication message to include a reply-to property that directs a recipient device to acknowledge, to an acknowledgment queue, receipt of the first publication message;

publishing the modified first publication message to (i) the acknowledgment queue and (ii) a consumer queue;

responsive to the modified first publication message being consumed by one or more subscribers and/or a first timeout for the modified first publication message expiring, deleting the modified first publication message from the consumer queue; and

responsive to the acknowledgment queue receiving an acknowledgment for the modified first publication message and/or a second timeout for the modified first publication message expiring, deleting the modified first publication message from the acknowledgment queue.

2. The method of claim 1 , wherein the reply-to property directs the recipient device to acknowledge receipt of the first publication message to an acknowledgment service configured to forward an acknowledgment to the acknowledgment queue.

3. The method of claim 1 further comprising receiving the first publication message from a publisher.

4. The method of claim 1 , wherein deleting the modified first publication message from the consumer queue is in response to the modified first publication message being consumed by a predetermined number of subscribers, the predetermined number of subscribers being a same number as a number of subscribers who have subscribed to the consumer queue.

5. The method of claim 1 , wherein deleting the modified first publication message from the consumer queue is performed prior to the acknowledgment queue receiving the acknowledgment for the modified first publication message and prior to the second timeout for the modified first publication message expiring.

6. The method of claim 1 further comprising:

generating a modified second publication message by modifying a second publication message to include a reply-to property directing a recipient device to acknowledge receipt of the second publication message to the acknowledgment queue;

publishing the modified second publication message to (i) the acknowledgment queue and (ii) the consumer queue; and

responsive to the modified second publication message being consumed by one or more subscribers, deleting the modified second publication message from the consumer queue, the modified second publication message being consumed prior to the acknowledgment queue receiving the acknowledgment for the modified first publication message.

7. The method of claim 1 further comprising:

receiving, by the acknowledgment queue and after deleting the modified first publication message from the acknowledgment queue, a reprocessing request for the modified first publication message;

incrementing a retry counter for the modified first publication message; and

republishing the modified first publication message to (i) the acknowledgment queue and (ii) the consumer queue.

8. The method of claim 7 further comprising:

receiving, by the acknowledgment queue, an additional reprocessing request for the modified first publication message;

determining that a maximum republication attempt for the modified first publication message has been reached; and

disregarding the additional reprocessing request.

9. The method of claim 7 further comprising:

receiving, by the acknowledgment queue, an additional reprocessing request for the modified first publication message;

incrementing a retry counter for the modified first publication message;

republishing the modified first publication message to (i) the acknowledgment queue and (ii) the consumer queue; and

adding the modified first publication message to a dead queue.

10. A publish-subscribe messaging system comprising:

at least one processor; and

at least one memory having stored thereon instructions that, when executed by the at least on processor, instruct the at least one processor to:

generate a modified first publication message by modifying a first publication message to include a reply-to property directing a recipient device to acknowledge, to an acknowledgment queue, receipt of the first publication message;

publish the modified first publication message to (i) the acknowledgment queue and (ii) a consumer queue;

responsive to the modified first publication message being consumed by one or more subscribers, delete the modified first publication message from the consumer queue; and

responsive to the acknowledgment queue receiving an acknowledgment for the modified first publication message, delete the modified first publication message from the acknowledgment queue.

11. The system of claim 10 , wherein the reply-to property directs the recipient device to acknowledge receipt of the first publication message to an acknowledgment service configured to forward an acknowledgment to the acknowledgment queue.

12. The system of claim 10 , wherein the instructions, when executed by the at least one processor, further instruct the at least one processor to receive the first publication message from a publisher.

13. The system of claim 10 , wherein the instructions, when executed by the at least one processor, instruct the at least one processor to delete the modified first publication message from the consumer queue in response to the modified first publication message being consumed by a predetermined number of subscribers, the predetermined number of subscribers being a same number as a number of subscribers who have subscribed to the consumer queue.

14. The system of claim 10 , wherein the instructions, when executed by the at least one processor, instruct the at least one processor to delete the modified first publication message from the consumer queue prior to the acknowledgment queue receiving the acknowledgment for the modified first publication message.

15. The system of claim 10 , wherein the instructions, when executed by the at least one processor, further instruct the at least one processor to:

generating a modified second publication message by modifying a second publication message to include a reply-to property directing a recipient device to acknowledge receipt of the second publication message to the acknowledgment queue;

publish the modified second publication message to (i) the acknowledgment queue and the (ii) consumer queue; and

responsive to the modified second publication message being consumed by one or more subscribers, delete the modified second publication message from the consumer queue, the modified second publication message being consumed prior to the acknowledgment queue receiving the acknowledgment for the modified first publication message.

16. The system of claim 10 , wherein the instructions, when executed by the at least one processor, further instruct the at least one processor to:

receive, by the acknowledgment queue and after deleting the modified first publication message from the acknowledgment queue, a reprocessing request for the modified first publication message;

increment a retry counter for the modified first publication message; and

republish the modified first publication message to (i) the acknowledgment queue and (ii) the consumer queue.

17. The system of claim 16 , wherein the instructions, when executed by the at least one processor, further instruct the at least one processor to:

receive, by the acknowledgment queue, an additional reprocessing request for the modified first publication message;

determine that a maximum republication attempt for the modified first publication message has been reached; and

disregard the additional reprocessing request.

18. The system of claim 16 , wherein the instructions, when executed by the at least one processor, further instruct the at least one processor to:

receive, by the acknowledgment queue, an additional reprocessing request for the modified first publication message;

increment a retry counter for the modified first publication message;

republish the modified first publication message to (i) the acknowledgment queue and (ii) the consumer queue; and

add the modified first publication message to a dead queue.

19. The system of claim 10 , wherein the instructions, when executed by the at least one processor, further instruct the at least one processor to:

delete the modified first publication message from the consumer queue in response a first timeout for the modified first publication message expiring; and

delete the modified first publication message from the acknowledgment queue in response to a second timeout for the modified first publication message expiring.

20. An asynchronous messaging system providing guaranteed exactly-once message delivery, the asynchronous messaging system comprising:

a message subscriber;

a message publisher configured to generate a first publication message for the message subscriber;

a consumer queue configured to (i) receive the first publication message from the message publisher for consumption by the message subscriber and (ii) delete the first publication message from the consumer queue in response to the first publication message being consumed by the message subscriber; and

an acknowledgment queue configured to receive the first publication message from the message publisher and delete the first publication message from the acknowledgment queue in response to the acknowledgment queue receiving an acknowledgment from the message subscriber that it has received the first publication message from the consumer queue.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2022
From: DEUTSCHE BANK TRUST COMPANY AMERICAS
To: IBSV LLC; LAYER3 TV, LLC; PUSHSPRING, LLC; T-MOBILE CENTRAL LLC; T-MOBILE USA, INC.; ASSURANCE WIRELESS USA, L.P.; BOOST WORLDWIDE, LLC; CLEARWIRE COMMUNICATIONS LLC; CLEARWIRE IP HOLDINGS LLC; SPRINTCOM LLC; SPRINT COMMUNICATIONS COMPANY L.P.; SPRINT INTERNATIONAL INCORPORATED; SPRINT SPECTRUM LLC
Reel/Frame 062595/0001 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: T-MOBILE USA, INC.; ISBV LLC; T-MOBILE CENTRAL LLC; LAYER3 TV, INC.; PUSHSPRING, INC.; BOOST WORLDWIDE, LLC; CLEARWIRE COMMUNICATIONS LLC; CLEARWIRE IP HOLDINGS LLC; CLEARWIRE LEGACY LLC; SPRINT COMMUNICATIONS COMPANY L.P.; SPRINT INTERNATIONAL INCORPORATED; SPRINT SPECTRUM L.P.; ASSURANCE WIRELESS USA, L.P.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS
Reel/Frame 053182/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2020
From: BORHADE, VARSHA
To: T-MOBILE USA, INC.
Reel/Frame 051800/0307 →
Cited By (1)
US 12,250,189