Lately I have been hearing some signal that there is intention to build a grouping of developer tools to bring ICON to feature parity with Ethereum. Generally the tools in question are eventeum, an event listener and broadcasting tool, and The Graph, a graphql API backed by IPFS, though in my mind both these tools are both trying to accomplish the same thing (creating real-time event driven apps) in two different ways (generic middleware vs graphql). Simply speaking, these are ways for developers to connect smart contracts with

Bare in mind I am no graphql expert and have only done the hello world kind of stuff so please take what I am saying on that with salt... But generally I think we should come up with a plan to provide the developers with both of these functionalities and I would like to propose a plan to do so.

In my mind I think we should start with building an eventeum equivalent that is able to push data to postgres whereby a graphql can be exposed with something like Hasura. Eventeum supports http, kafka, rabbitmq, and pulsar but all these outputs are just plugins and any output could be concievably provided. Ultimately we need to get the data into postgres for graphql to easily work so I think the goal is to make that happen in as close to realtime as possible. I then propose that we build an eventeum to kafka to postgres to graphql stack that I want to go into details about implementation.

Before getting into specifics, want to layout where we are at. Right now ICON does not support websockets (bidirectional sockets) which eventeum depends on. ICON 2.0 will support it so the eventeum tool we build right now should be modular so that when websockets are available, that the listening components can be integrated. Because this is the datafeed to the whole process and we're not going to wait a year for 2.0 to get started, we're planning on using a modified version of the icon-etl package to poll a local node every 10 milliseconds for changes in the blockchain. We need this for the Balanced Token DEX API we are building that has a kafka / mongo / redis backend that support websockets and a REST API for the common charts you would expect to see when trading crypto (candlestick etc). Anyways, we need this service and while Rhizome has built a C# implementation of a

where as graphql by its nature (and some please correct me hereis able to broadcast changes in the . They are needed for building event driven architectures whereby events that happen on the blockchain are able to in real time trigger other services.

Right now, there is only one tool in the ecosystem that does this right now that I am aware of (please chime in if

Not trying