When would I use reactive programming libraries like RX Java and Project Reactor compared to stream processing engines such as Storm and Flink?
I am aware that these concepts might not be directly comparable, but I would like to understand the relationship between both concepts better.
My current undertanding is that both have a focus on unbounded streams of events/data.
Reactive programmin is a more low-level concept in the sense that a stream processing engine could be implemented with it. I think this is actually the case for Akka Streams.
Stream processing engines seem to aim to solve the problem of horizontal scaling stream processing tasks, i.e., clustering etc.
Please clearify the commonalities and differences between both concepts, typical use cases for each of them and how they relate to each other otherwise.