There is reactive programming, reactive systems, and reactive streams. These are three different things that are related to one another. It is not without reason that all three are called reactive.
Reactive programming is a programming paradigm similar to object-oriented programming and functional programming. A reactive system is a system design that sets certain aims and technological constraints on how certain types of information systems should be designed to be reactive. There are a lot of resemblances to reactive programming principles in this. A reactive stream is a set of interface definitions that help to achieve a similar coding advantage to reactive systems, which can be used to create reactive systems. Reactive stream interfaces are part of JDK 9. They are available in Java and in other languages.
We will look at these in separate sections; at the...