Merging multiple unsynchronized streams of related events and multi-tenant support
AssigneeSalesforce, Inc.
InventorsAlexander Oscherov, Victor Spivak, Scott Roderick Young, Rohit Deshpande, Nikita Mundhada
Life of this patent
Estimating the term…
Abstract
A method and system for handling asynchronous data streams in a multi-tenant system. The process includes receiving at least a first stream of data and a second stream of data by a rules engine, determining by pattern matching of the rules engine, whether data in the first stream or data in the second stream meet conditions of a rule defined by a tenant of the multi-tenant system, and implementing by the rules engine the rule including a set of actions to modify data from the second data stream, in response to the data in the first stream matching the conditions the rule.
Claims20
A method for handling asynchronous event streams in a multi-tenant system, the method comprising:
- receiving, by a rules engine, at least a first event stream and a second event stream, wherein
- events of the first event stream and of the second event stream are published asynchronously and convey information about operations occurring in the multi-tenant system,
- the first event stream comprising a first topic and a first partition in data of events in the first event stream, and
- the second event stream comprising a second topic and a second partition in data of events in the second event stream;
- determining, by pattern matching of the rules engine, whether the first topic and the first partition meet conditions of a rule defined by a tenant of the multi-tenant system, wherein
- the first topic and the second topic represent source information, or content type information for the respective events, and
- the first partition and the second partition represent respective identifiers for tenants of the multi-tenant system for the respective events;
- and
- merging, by the rules engine, data of one or more of the events of the second event stream with data of one or more of the events of the first event stream, in response to the data of the events of the first event stream meeting the conditions of the rule, by grouping the second topic with the first topic and adjusting an order of the events in the second event stream to align with an order of the events in the first event stream within a defined timeframe based on the grouped topics.
A non-transitory machine-readable storage medium that provides instructions that, when executed by a processor, will cause the processor to perform operations comprising:
- receiving, by a rules engine, at least a first event stream and a second event stream, wherein
- events of the first event stream and of the second event stream are published asynchronously and convey information about operations occurring in the multi-tenant system,
- the first event stream comprising a first topic and a first partition in data of events in the first event stream, and
- the second event stream comprising a second topic and a second partition in data of events in the second event stream;
- determining, by pattern matching of the rules engine, whether (i) the first topic and the first partition, or (ii) the second topic and the second partition meet conditions of a rule defined by a tenant of the multi-tenant system, wherein
- the first topic and the second topic represent source information, or content type information for the respective events, and
- the first partition and the second partition represent respective identifiers for tenants of the multi-tenant system for the respective events;
- and
- merging, by the rules engine, data of one or more of the events of the second event stream with data of one or more of the events of the first event stream, in response to the data of the events of the first event stream meeting the conditions of the rule, by grouping the second topic with the first topic and adjusting an order of the events in the second event stream to align with an order of the events in the first event stream within a defined timeframe based on the grouped topics.
A computing system to implement a method for handling asynchronous event streams in a multi-tenant system, the computing system comprising:
- a non-transitory machine-readable storage medium having stored therein a rules engine;
- and
- a processor coupled to the non-transitory machine-readable storage medium, the processor to execute the rules engine to:
- receive at least a first stream of events and a second stream of events, wherein
- events of the first event stream and of the second event stream are published asynchronously and convey information about operations occurring in the multi-tenant system,
- the first event stream comprising a first topic and a first partition in data of events in the first event stream, and
- the second event stream comprising a second topic and a second partition in data of events in the second event stream;
- determine, by pattern matching of the rules engine, whether (i) a first topic and a first partition in data of events of the first event stream, or (ii) a second topic and a second partition in data of events of the second event stream, meet conditions of a rule defined by a tenant of the multi-tenant system, whether (i) the first topic and the first partition, or (ii) the second topic and the second partition meet conditions of a rule defined by a tenant of the multi-tenant system, wherein
- the first topic and the second topic represent source information, or content type information for the respective events, and
- the first partition and the second partition represent respective identifiers for tenants of the multi-tenant system for the respective events;
- and
- merge data of one or more of the events of the second event stream with data of one or more of the events of the first event stream, in response to the data of the events of the first event stream meeting the conditions of the rule, by grouping the second topic with the first topic and adjusting an order of the events in the second event stream to align with an order of the events in the first event stream within a defined timeframe based on the grouped topics.
Dependencies are inferred from the claim text.