I developed a system that receives continual streams of requests via a REST API. For each bit of data contained in the body of the request, the sender receives an according bit of data in the response. With each bit of data, the server changes it's state. This change must be persistent. (From a technological standpoint even better would be two TCP or even UDP streams, one incoming, one outgoing. But that would make it really complicated for people to use.)
I'd love to get away from a centralized architecture. According to my limited understanding, however, transmitting streams of data to the Ethereum blockchain (several transactions per second) is not really feasible. Also maintaining a rather complex state doesn't really seem like what smart contracts are made for.
My questions are:
Is there a way to communicate with Ethereum (or another blockchain) through continual streams of input and output data instead of individual transactions? Ideally I'd like to avoid data batching.
Are Ethereum smart contracts fit to maintain complex states? What is a feasible amount of information that a smart contact can hold in its variables? Bytes, kilobytes, megabytes?
Can Ethereum dApps deal with streaming data?
How can you store complex data in dApps?
I'd be great if you could point me in a helpful direction.
Thanks a lot and have a great day!