System and method for streaming events in a transaction-based system
First Claim
Patent Images
1. A distributed system comprising:
- a plurality of remote systems, each of the remote computing systems including an event emitter, a plurality of event sources, and a first processor, and a first memory, the first memory of a first one the plurality of remote systems stores instructions, the instructions executed by the first processor of the first one of the plurality of remote systems receive a transaction, contemporaneously create, via the event emitter, one or more events based on a type of the transaction, determine at least one of the plurality of event sources corresponding with each one of the one or more events based on a type of each one of the one or more events, route each one of the one or more events to the at least one of the plurality of event sources corresponding to each one of the one or more events, commit the transaction the at least one remote computing system, and stream the one or more events from the plurality of event sources over a communications network; and
a central manager comprising a second processor, one or more databases, a cache, a plurality of event sinks, each event sink of the plurality of event sinks corresponding to a different event source of the plurality of event sources in each of the plurality of remote systems, and an event receiver, the central manager programmed to receive, via the event receiver, the stream of the one or more events from the plurality of event sources of the first one of the plurality of remote systems, route each of the one or more events to at least one event sink corresponding to an event source of the plurality of event sources, temporarily store the transaction associated with the one or more events in the cache, after which the central manager is programmed to permanently commit the transaction to the one or more databases at the central manager and proliferate the one or more events to a subset of the plurality of remote systems, each of the remote systems in the subset being different than the first one of the plurality of remote system,wherein the central manager permanently commits the transaction to the one or more databases subsequent to the first one of the plurality of remote computing systems committing the transaction,wherein the subset of remote systems are configured to perform one or more functions in response to receiving the one or more events.
3 Assignments
0 Petitions
Accused Products
Abstract
A system is provided that permits events to be propagated between systems in near real time for the purpose of ensuring consistency in a transaction-based environment. In one implementation, transactions are streamed between systems using a lightweight protocol shortly after they are processed, rather than being communicated in a one-way batch mode as is typically done in conventional retail store systems.
17 Citations
20 Claims
-
1. A distributed system comprising:
-
a plurality of remote systems, each of the remote computing systems including an event emitter, a plurality of event sources, and a first processor, and a first memory, the first memory of a first one the plurality of remote systems stores instructions, the instructions executed by the first processor of the first one of the plurality of remote systems receive a transaction, contemporaneously create, via the event emitter, one or more events based on a type of the transaction, determine at least one of the plurality of event sources corresponding with each one of the one or more events based on a type of each one of the one or more events, route each one of the one or more events to the at least one of the plurality of event sources corresponding to each one of the one or more events, commit the transaction the at least one remote computing system, and stream the one or more events from the plurality of event sources over a communications network; and a central manager comprising a second processor, one or more databases, a cache, a plurality of event sinks, each event sink of the plurality of event sinks corresponding to a different event source of the plurality of event sources in each of the plurality of remote systems, and an event receiver, the central manager programmed to receive, via the event receiver, the stream of the one or more events from the plurality of event sources of the first one of the plurality of remote systems, route each of the one or more events to at least one event sink corresponding to an event source of the plurality of event sources, temporarily store the transaction associated with the one or more events in the cache, after which the central manager is programmed to permanently commit the transaction to the one or more databases at the central manager and proliferate the one or more events to a subset of the plurality of remote systems, each of the remote systems in the subset being different than the first one of the plurality of remote system, wherein the central manager permanently commits the transaction to the one or more databases subsequent to the first one of the plurality of remote computing systems committing the transaction, wherein the subset of remote systems are configured to perform one or more functions in response to receiving the one or more events. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for processing events in a distributed system, the method comprising:
-
receiving, via a first one of a plurality of remote systems including a first processor, an event emitter and a plurality of event sources; creating, via the event emitter of the first one of the plurality of remote systems, one or more events based on a type of the transaction; determining, via the first one of the plurality of remote systems, at least one of the plurality of event sources corresponding with each one of the one or more events based on a type of each one of the one or more events; routing, via the first one of the plurality of remote systems, each one of the one or more events to the at least one of a plurality of event sources corresponding each one of the one or more events; committing, via the first one of the plurality of remote systems, the transaction at the first one of the plurality of remote systems; streaming, via the first one of the plurality of remote systems, the one or more events from the plurality of event sources over a communications network; receiving, via a central manager comprising a second processor, one or more databases, a cache, an event receiver, a plurality of event sinks, each event sink of the plurality of event sinks corresponding to a different event source of the plurality of event sources in each of the plurality of remote systems, the stream of the one or more events from the plurality of event sources of first one of the plurality of remote systems; routing, via the central manager, each of the one or more events to at least one event sink corresponding to an event source of the plurality of event sources; temporarily storing, via the central manager, the transaction associated with the one or more events in the cache; after which permanently committing, via the central manager, the transaction to the one or more databases at the central manager; proliferating, via the central manager, the one or more events to a subset of the plurality of remote systems, each of the remote systems in the subset being different than the first one of the plurality of remote systems; and performing, via the subset of remote systems, one or more functions in response to receiving the one or more events, wherein the central manager permanently commits the transaction to the one or more databases subsequent to the first one of the plurality of remote systems system committing the transaction. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification