IP Library Granted Patent US 11,488,082
Granted Patent B2
US 11,488,082 · App. 16/366,922 · Granted Nov 1, 2022

Monitoring and verification system for end-to-end distribution of messages

Inventors: Utsavi Benani (Fremont, CA); Zhidong Ke (Milpitas, CA); Scott W. Bishel (Erie, CO); Praveen Innamuri (Sunnyvale, CA); Kevin Terusaki (Oakland, CA); Shan-Cheng Ho (Sunnyvale, CA)
Assignee: Salesforce, Inc.
G06Q10/06315G06F9/546G06F16/1734G06F16/908G06F9/5016G06Q30/016
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,488,082
App. No.
16/366,922
Granted
Nov 1, 2022
Kind
B2
Abstract

Described is a method and system for verifying the end-to-end distribution of messages within an on-demand services platform. To provide the ability to monitor and trace such messages, the system may include a specialized and queryable datastore (or database) that allows the system to track the distribution and acknowledgement of messages throughout the services platform. Accordingly, a specialized verification process may be initiated to query the database to verify the receipt of a message has been acknowledged by various components within the system. In addition, the verification process may automatically retry the distribution the messages to ensure particular downstream components have received the message. Accordingly, the system alleviates the need to manual re-crawl various message source to ensure the end-to-end distribution of such messages.

Claims (47)

1. A system comprising:

one or more processors; and

a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:

retrieve proactively from a third-party messaging service and by a retrieval component of the system, a message associated with a user account that is subscribed to an on-demand service;

create an entry for the message within a datastore, the datastore storing information to trace a distribution of the message within the system;

distribute the message to at least an extraction component within the system, the extraction component extracting information from the message, the extracted information being provided to a productivity tool within the on-demand system;

perform one or more updates to the entry to trace the distribution of the message, the one or more updates including a message distribution update in response to distributing the message to at least the extraction component, and a message receipt update when the extraction component acknowledges receipt of the message;

verify whether the message was received by the extraction component by querying the datastore to determine whether the message receipt update was performed in response to the extraction component acknowledging receipt of the message; and

initiate a subsequent forwarding of the message to the extraction component by obtaining necessary credentials to access the third-party messaging service, retrieving proactively the message from the third-party messaging service at least a second time, and reforwarding the message to the extraction component, in response to determining the message was not received by the extraction component.

2. The system of claim 1 , wherein verifying whether the message was received by the extraction component includes:

identifying a previous verification timestamp associated with a storage container for messages included as part of a most recently performed verification;

identifying one or more storage containers for messages retrieved since the previous verification timestamp; and

querying only entries of the datastore associated with the one or more storage containers to determine whether the extraction component acknowledged receipt of the message.

3. The system of claim 1 , the plurality of instructions when executed further causing the one or more processors to:

set a current verification timestamp associated with the one or more storage containers in response to verifying whether the message was received by the extraction component.

4. The system of claim 1 , wherein verifying whether the message was received by the extraction component includes performing the verification by one or more jobs that are part of a distributed set of computing resources.

5. The system of claim 1 , wherein the verifying is performed as part of a schedule determined based on a predefined bucket size storing a set of messages.

6. A computer program product comprising a non-transitory computer-readable medium having a program code embodied therein to be executed by one or more processors, the program code including instructions to:

retrieve proactively from a third-party messaging service and by a retrieval component of the system, a message associated with a user account that is subscribed to an on-demand service;

create an entry for the message within a datastore, the datastore storing information to trace a distribution of the message within the system;

distribute the message to at least an extraction component within the system, the extraction component extracting information from the message, the extracted information being provided to a productivity tool within the on-demand system;

perform one or more updates to the entry to trace the distribution of message, the one or more updates including a message distribution update in response to distributing the message to at least the extraction component, and a message receipt update when the extraction component acknowledges receipt of the message;

verify whether the message was received by the extraction component by querying the datastore to determine whether the message receipt update was performed in response to the extraction component acknowledging receipt of the message; and

initiate a subsequent forwarding of the message to the extraction component by obtaining necessary credentials to access the third-party messaging service, retrieving proactively the message from the third-party messaging service at least a second time, and reforwarding the message to the extraction component, in response to determining the message was not received by the extraction component.

7. The computer program product of claim 6 , wherein verifying whether the message was received by the extraction component includes:

identifying a previous verification timestamp associated with a storage container for messages included as part of a most recently performed verification;

identifying one or more storage containers for messages retrieved since the previous verification timestamp; and

querying only entries of the datastore associated with the one or more storage containers to determine whether the extraction component acknowledged receipt of the message.

8. The computer program product of claim 6 , the program code including further instructions to:

set a current verification timestamp associated with the one or more storage containers in response to verifying whether the message was received by the extraction component.

9. The computer program product of claim 6 , wherein verifying whether the message was received by the extraction component includes performing the verification by one or more jobs that are part of a distributed set of computing resources.

10. The computer program product of claim 6 , wherein the verifying is performed as part of a schedule determined based on a predefined bucket size storing a set of messages.

11. A method comprising:

retrieving proactively from a third-party messaging service and by a retrieval component of the system, a message associated with a user account that is subscribed to an on-demand service;

creating an entry for the message within a datastore, the datastore storing information to trace a distribution of the message within the system;

distributing the message to at least an extraction component within the system, the extraction component extracting information from the message, the extracted information being provided to a productivity tool within the on-demand system;

performing one or more updates to the entry to trace the distribution of message, the one or more updates including a message distribution update in response to distributing the message to at least the extraction component, and a message receipt update when the extraction component acknowledges receipt of the message;

verifying whether the message was received by the extraction component by querying the datastore to determine whether the message receipt update was performed in response to the extraction component acknowledging receipt of the message; and

initiating a subsequent forwarding of the message to the extraction component by obtaining necessary credentials to access the third-party messaging service, retrieving proactively the message from the third-party messaging service at least a second time, and reforwarding the message to the extraction component, in response to determining the message was not received by the extraction component.

12. The method of claim 11 , wherein verifying whether the message was received by the extraction component includes:

identifying a previous verification timestamp associated with a storage container for messages included as part of a most recently performed verification;

identifying one or more storage containers for messages retrieved since the previous verification timestamp; and

querying only entries of the datastore associated with the one or more storage containers to determine whether the extraction component acknowledged receipt of the message.

13. The method of claim 11 , further comprising:

setting a current verification timestamp associated with the one or more storage containers in response to verifying whether the message was received by the extraction component.

14. The method of claim 11 , wherein verifying whether the message was received by the extraction component includes performing the verification by one or more jobs that are part of a distributed set of computing resources.

15. The method of claim 11 , wherein the verifying is performed as part of a schedule determined based on a predefined bucket size storing a set of messages.

Assignments (2)
CHANGE OF NAME Recorded Sep 20, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 064975/0956 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2019
From: BENANI, UTSAVI; KE, ZHIDONG; BISHEL, SCOTT W.; INNAMURI, PRAVEEN; TERUSAKI, KEVIN; HO, SHAN-CHENG
To: SALESFORCE.COM, INC.
Reel/Frame 048719/0174 →
Continuity (1)
Related Publication 20200311637A1 · Oct 1, 2020