System and method for streaming events in a transaction-based system
First Claim
Patent Images
1. A distributed system comprising:
- one or more remote computing systems, each of the remote computing systems including an event emitter and a first processor, the first processor of at least one of the one or more remote computing systems is programmed to create, via the event emitter, one or more events based on a type of one or more transactions that occur at a location associated with the at least one of the one or more remote computing systems, determine at least one of a plurality of event sources associated with each one of the one or more events based on a type of the one or more events, route each one of the one or more events to the at least one of a plurality of event sources associated with the one or more events, commit the one or more transactions at the at least one of the one or more remote computing systems, and stream the one or more events based on the type of the one or more transactions including the one or more transactions occurring in real time from the at least one of the one or more remote computing systems 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, and an event receiver, the event receiver being configured to receive one or more streams of the one or more events based on the type of the one or more transactions from the one or more remote systems, route each of the one or more events to at least one event sink corresponding to the event source associated with the one or more events, temporarily store the one or more transactions in the cache, after which the second processor permanently commits the one or more transactions to the one or more databases at the central manager, and matriculates at least one of the one or more transactions to an external computer system, the second processor removing the at least one of the one or more transactions from the cache after the at least one of the one or more transactions has been permanently committed to the one or more databases and matriculated to the external computer system,wherein the second processor permanently commits the one or more transactions to the one or more databases subsequent to the at least one of the one or more remote computing systems committing the one or more transactions.
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.
-
Citations
20 Claims
-
1. A distributed system comprising:
-
one or more remote computing systems, each of the remote computing systems including an event emitter and a first processor, the first processor of at least one of the one or more remote computing systems is programmed to create, via the event emitter, one or more events based on a type of one or more transactions that occur at a location associated with the at least one of the one or more remote computing systems, determine at least one of a plurality of event sources associated with each one of the one or more events based on a type of the one or more events, route each one of the one or more events to the at least one of a plurality of event sources associated with the one or more events, commit the one or more transactions at the at least one of the one or more remote computing systems, and stream the one or more events based on the type of the one or more transactions including the one or more transactions occurring in real time from the at least one of the one or more remote computing systems 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, and an event receiver, the event receiver being configured to receive one or more streams of the one or more events based on the type of the one or more transactions from the one or more remote systems, route each of the one or more events to at least one event sink corresponding to the event source associated with the one or more events, temporarily store the one or more transactions in the cache, after which the second processor permanently commits the one or more transactions to the one or more databases at the central manager, and matriculates at least one of the one or more transactions to an external computer system, the second processor removing the at least one of the one or more transactions from the cache after the at least one of the one or more transactions has been permanently committed to the one or more databases and matriculated to the external computer system, wherein the second processor permanently commits the one or more transactions to the one or more databases subsequent to the at least one of the one or more remote computing systems committing the one or more transactions. - 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 acts of:
-
creating, by a first processor of a remote computing system including an event emitter, one or more events based on a type of one or more transactions that occur at a location associated with the remote system; determining, by the first processor, at least one of a plurality of event sources associated with each one of the one or more events based on a type of the one or more events; routing, by the first processor, each one of the one or more events to the at least one of a plurality of event sources associated with the one or more events, committing, by the first processor, the one or more transactions at the remote computing system generating, by the first processor, a stream of one or more events based on the type of the one or more transactions including the one or more transactions occurring in real time from the the remote computing system over a communications network; a second processor, one or more databases, a cache, and receiving, by an event receiver of a central manager, the streams of one or more events based on the type of the one or more transactions from the one or more distributed systems; routing, by the event receiver, each of the one or more events to at least one event sink of a plurality of event sinks corresponding to the event source associated with the one or more events, wherein each event sink of the plurality of event sinks corresponding to a different event source of the plurality of event sources, temporarily storing, via the event receiver of the central manager, the one or more transactions in a cache, subsequently permanently committing, via a second processor of the central manager, the one or more of transactions to one or more databases within the central manager, wherein the second processor committing the one or more of transactions subsequent to the first processor committing the one or more transactions at the remote computing system; matriculating, via the second processor of the central manager, at least one of the one or more transactions to an external system; removing, via the second processor of the central manager, the at least one of the one or more transactions from the cache after the at least one of the one or more transactions has been permanently committed to one or more databases and matriculated to the external system. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification