A stream processor
Another use case of a function is to use it as a processor for data streams. A stream may be sent out from any kind of sources, such as data buses or event buses. Kafka, Twitter, or blockchain (in our case, Ethereum) could be a source of data streams. An Ethereum blockchain could emit events specific to some smart contracts when a certain action is taken.
To observe these events in the form of data streams efficiently, we need to use a kind of reactive client. RxJava is one of them. Fortunately, web3j
, the Ethereum client we are using, already has RxJava observables to receive streaming data from an Ethereum blockchain.
We call this component listener
. The following diagram shows what we will implement around the Event Listener
:
Figure 8.13: Diagram illustrating relations around the Event Listener
A requirement is that we run the agent (Event Listener) as a container on the same network as the blockchain. We use the agent to divert each transaction information to other endpoints...