It would make sense to describe whether a type registered in ReactiveAdapterRegistry uses deferred computation. Deferred types are Publisher types, RxJava types and Kotlin's flow. Non-deferred types (eager computation) are which act as Future or Promise.

Background is that Spring Data uses ReactiveAdapterRegistry to determine a stack that is used to implement a repository interface. An issue comes into play when a repository uses @Async in combination with CompletableFuture. These methods are typically implemented using the imperative stack and calls are offloaded to a thread pool. Since the registry lists CompletionStage/CompletableFuture types, future types are considered to be reactive ones.

Related issue: https://jira.spring.io/browse/DATAJPA-1710