IP Library Granted Patent US 11,533,538
Granted Patent B2
US 11,533,538 · App. 16/678,962 · Granted Dec 20, 2022

Streaming event content based filtering

Inventors: Dan Li (San Ramon, CA); Lawrence Eugenio McAlpin (Bloomington, IN); Brian St. Clair (Lutz, FL); Alex S. Warshavsky (Walnut Creek, CA)
Assignee: salesforce.com, inc.
H04N21/4542G06F9/542G06F16/735G06F16/78H04L65/61H04N21/25891H04N21/2668H04N21/26208
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,533,538
App. No.
16/678,962
Granted
Dec 20, 2022
Kind
B2
Abstract

A method of per subscription event filtering is provided for an event recordation and distribution system. The method includes receiving an event from the event recordation and distribution system, determining that an event consumer that is a subscriber of an event stream of the event has specified filter logic for the event stream, and forwarding the event to an event consumer in response to the event meeting requirements of the specified filter logic.

Claims (78)

1. A method, comprising:

processing a subscription request received from an event consumer system, the subscription request indicating a particular topic;

determining an event stream associated with the subscription request;

determining whether the subscription request has specified has associated content based filter logic, the content based filter logic indicating criteria for which events of the event stream are to be delivered to the event consumer system;

determining whether the content based filter logic is valid based, at least in part, by:

verifying, for at least a first field of the content based filter logic, presence of a corresponding value in the content based filter logic, and

verifying that a data type of the value is compatible with the first field;

responsive to determining that the content based filter logic is valid, registering, for the event stream, the subscription request and the associated content based filter logic;

obtaining an event received from an event recordation and distribution system;

determining an event stream associated with the event;

determining one or more subscriptions for the determined event stream;

determining, for at least one subscription of the subscriptions, whether the subscription has associated content based filter logic;

responsive to determining that the subscription has associated content based filter logic, determining whether the event satisfies the content based filter logic based, at least in part, on a value of a first field of a data object corresponding to the event; and

providing the event to the event consumer system in response to determining that the event satisfies the content based filter logic.

2. The method of claim 1 , further comprising:

determining the content based filter logic for each subscription request submitted for the event stream.

3. The method of claim 1 , further comprising:

interpreting the content based filter logic by a formula engine of the event recordation and distribution system.

4. The method of claim 1 , further comprising:

establishing a subscription for the event consumer system, the subscription including the content based filter logic of the subscription request.

5. The method of claim 1 , further comprising:

processing a second subscription request for a second event stream; and

responsive to determining that validating of second content based filter logic specified in association with the second subscription request for the second event stream, has failed, registering the second subscription request without the second content based filter logic.

6. A computer program product comprising a non-transitory machine-readable storage medium having computer program instructions stored therein, the computer program instructions configured such that, when executed by one or more processors, the computer program instructions cause the one or more processors to:

process a subscription request received from an event consumer system, the subscription request indicating a particular topic;

determine an event stream associated with the subscription request;

determine whether the subscription request has associated content based filter logic, the content based filter logic indicating criteria for which events of the event stream are to be delivered to the event consumer system;

determine whether the content based filter logic is valid based, at least in part, by:

verifying, for at least a first field of the content based filter logic, presence of a corresponding value in the content based filter logic, and

verifying that a data type of the value is compatible with the first field;

responsive to determining that the content based filter logic is valid, register, for the event stream, the subscription request and the associated content based filter logic;

obtain an event received from an event recordation and distribution system;

determine an event stream associated with the event;

determine one or more subscriptions for the determined event stream;

determine, for at least one subscription of the subscriptions, whether the subscription has associated content based filter logic;

responsive to determining that the subscription has associated content based filter logic, determine whether the event satisfies the content based filter logic based, at least in part, on a value of a first field of a data object corresponding to the event; and

provide the event to the event consumer system in response to determining that the event satisfies the content based filter logic.

7. The computer program product of claim 6 , wherein the computer program instructions are further configured to cause the one or more processors to:

determine the content based filter logic for each subscription request submitted for the event stream.

8. The computer program product of claim 6 , wherein the computer program instructions are further configured to cause the one or more processors to:

interpret the content based filter logic by a formula engine of the event recordation and distribution system.

9. The computer program product of claim 6 , wherein the computer program instructions are further configured to cause the one or more processors to:

process a second subscription request for a second event stream; and

in response to determining that validating of second content based filter logic specified in association with the second subscription request for the second event stream has failed, registering the second subscription request without the second content based filter logic.

10. A system, comprising:

a database system implemented using a server system, the database system configurable to cause:

processing a subscription request received from an event consumer system, the subscription request indicating a particular topic;

determining an event stream associated with the subscription request;

determining whether the subscription request has associated content based filter logic, the content based filter logic indicating criteria for which events of the event stream are to be delivered to the event consumer system;

determining whether the content based filter logic is valid based, at least in part, by:

verifying, for at least a first field of the content based filter logic, presence of a corresponding value in the content based filter logic, and

verifying that a data type of the value is compatible with the first field;

responsive to determining that the content based filter logic is valid, registering, for the event stream, the subscription request and the associated content based filter logic;

obtaining an event received from an event recordation and distribution system;

determining an event stream associated with the event;

determining one or more subscriptions for the determined event stream;

determining, for at least one subscription of the subscriptions, whether the subscription has associated content based filter logic;

responsive to determining that the subscription has associated content based filter logic, determining whether the event satisfies the content based filter logic based, at least in part, on a value of a first field of a data object corresponding to the event; and

providing the event to the event consumer system in response to determining that the event satisfies the content based filter logic.

11. The system of claim 10 , the database system further configurable to cause:

interpreting the content based filter logic by a formula engine of the event recordation and distribution system.

12. The system of claim 10 , the database system further configurable to cause:

processing a second subscription request for a second event stream; and

responsive to determining that validating of second content based filter logic specified in association with the second subscription request for the second event stream has failed, registering the second subscription request without the second content based filter logic.

13. The method of claim 1 , the content based filter logic comprising a string that includes the at least one operator, the method further comprising:

parsing the string such that a plurality of tokens are obtained;

wherein determining that the event associated with the event stream satisfies the content based filter logic based, at least in part, on a value of the first field of a data object corresponding to the event includes evaluating the value of the first field of the data object using the tokens.

14. The method of claim 13 , the string including at least one field name-value pair, the field name-value pair including a field name of the first field and a value, the field name and value being separated in the string by an operator.

15. The system of claim 10 , the content based filter logic comprising at least one field name-value pair and a corresponding operator, the field name-value pair including a field name of the first field and a value.

16. The method of claim 1 , wherein validating the content based filter logic submitted in association with the subscription request comprises applying one or more of: a syntactic algorithm or a semantic checking algorithm.

17. The method of claim 1 , the event being obtained by an event delivery manager, wherein registering the subscription request and the associated content based filter logic comprises:

subscribing to the event stream by the event delivery manager with the event recordation and distribution system.

18. The method of claim 1 , the subscription request being associated with a topic corresponding to the event stream.

19. The method of claim 1 , wherein validating the content based filter logic submitted in association with the subscription request is performed comprises:

verifying that the content based filter conforms to an expression language.

20. The method of claim 1 , wherein validating the content based filter logic submitted in association with the subscription request is performed comprises one or more of:

verifying that a field name of the content based filter respects an event schema, the field name corresponding to a field; or

verifying that a value of the content based filter that corresponds to the field name matches a field data type associated with the field.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0452 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2019
From: LI, DAN; MCALPIN, LAWRENCE EUGENIO; ST. CLAIR, BRIAN; WARSHAVSKY, ALEX S.
To: SALESFORCE.COM, INC.
Reel/Frame 050962/0431 →
Continuity (1)
Related Publication 20210144440A1 · May 13, 2021