There are reactive programming, reactive systems, and reactive streams. These are three different things related to each other. It is not without reason that all the 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 a certain type 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 helps to achieve similar coding advantage to reactive systems and which can be used to create reactive systems. Reactive stream interfaces are a part of JDK 9, but are available not only in Java, but also in other languages.
We will look at these in separate sections, at the end of which, you will...