Reactive programming is a paradigm that focuses more on where the data flows during computation than on how to compute the result. If the problem is best described as several computations that depend on the output of each other but several may be executed independent of the other, reactive programming may come into the picture. As a simple example, we can have the following computation that calculates the value of h from some given b, c, e, and f values, using f1, f2, f3, f4, and f5 as simple computational steps:
a = f1(b,c)
d = f2(e,f)
k = f3(e,c)
g = f4(b,f,k)
h = f5(d,a,g)
If we write these in Java in the conventional way, the methods f1 to f5 will be invoked one after the other. If we have multiple processors and are able to parallelize the execution, we may perform some of the methods in parallel. This, of course, assumes that these methods are purely computational methods...