The term reactive is usually used in the context of reactive programming and reactive systems. Reactive programming (also called Rx programming) is based on programming with asynchronous data streams (also called reactive streams). It was introduced to Java in the java.util.concurrent package, with Java 9. It allows a Publisher to generate a stream of data, to which a Subscriber can asynchronously subscribe.
As you have seen, we were able to process data asynchronously even without this new API, by using CompletableFuture. But, after writing such a code a few times, one notices that most of it is just plumbing, so one gets the feeling there has to be an even simpler and more convenient solution. That's how the Reactive Streams initiative ...