Apache Ignite and Apache Storm are two quite different technologies in many aspects - especially since Storm has one very specific use case, while Ignite has a pretty large toolbox under one roof. As far as I understand, the core of Ignite is its storage in memory. Built on this is its location-sensitive location by location. All sorts of cool "toys" built on this. I'm interested in the Streaming function, which is mainly a listener when changing a cache in memory.
If I set a sliding window to one tuple, Ignite provides - like Storm - functionality with a single tuple in time. Data is stored in Ignite memory. Storm does not "store" data in memory, but tuples, of course, are also stored in memory. Therefore, in both cases, I have streaming, and I have data in memory, and I can distribute my calculations.
It seems to me that writing programs that perform many steps of data conversion is easier to write in Storm due to the abstractions of both technologies. What can be said about this?
Second question: what about performance? I would suggest that localizing Ignite data might give it an edge. On the other hand, I think that several steps can be better distributed in Storm (various bolts on all kinds of machines), while the Ignite program cannot be divided so easily.
If I still wanted to distribute the stream (not only to the data, but also the steps on different machines). I think I would have to write some Ignite feeds that communicate through Caches, right? That would be harder to write than in Storm (bringing us back to the first question).
source share