IOTA community publishes application to optimize streams

Keepy is a generic gateway that enables devices to easily publish their data using IOTA streams.

Keepy gives applications faster read times and the ability to validate data integrity against the IOTA Tangle.

The I2T crew has launched the application Keepy, which works with IOTA streams. Keepy aims to improve the user experience and is a generic gateway that allows various devices using the I2T standard to easily publish their data on streams. As a small Nodejs application, Keepy receives information from sensors and “returns it on request,” as the I2T team explained:

Keepy is a small Nodejs application that sits in front of the Streams Gateway to receive the data from the sensors and send them back on request. It basically mounts an endpoint that you can POST data to. The data is stored on streams and a local database that creates a link between each record and the streams channel ID that contains it.

With Keepy, users can query information from a range of data sets and retrieve information from a local database such as get the channel identification. This gives applications fast read times and the ability to validate data integrity against the IOTA Tangle.

The application also has a buffer system. This allows users to request information insertion management and send information to Keepy in a period of low frequency. The application also allows users to configure the length of time that the data is stored. As soon as the time has expired, the data is sent to the IOTA Tangle for storage. The I2T team further added:

We believe this is a very simple but valuable application. It helps solve some of the problems that have been observed while caring for participants in the โ€œIntegrate Everything with IOTAโ€ hackathon. It is open source and extremely easy for users to customize. We encourage everyone to try it out and play with it!

Limitations with IOTA streams

Keepy was developed by the developers Eduardo Pelitti and Andy Espagnolo, part of the Argentine open source community I2T. The developers found limitations in several functions of IOTA Streams. In addition, they decided to use the Nodejs programming language, as it is easy to use “in view of its easy to implement and modify character”. As both developers wrote, there is one major limitation that Keepy is trying to address:

Streams runs over IOTA transactions. Therefore, every data set sent requires a small proof-of-work, which limits the granularity of the inputs. Sending one record per second would create an overloaded, full node and affect the gateway’s ability to do its job.

On the other hand, with Streams channels it is not possible to receive a subset of messages (i.e. the last 5 published messages). This proved to be a problem when developing IoT applications that needed to maintain the state of objects such as a living room lamp and access them in order to perform actions, the developers discovered.