For now, just implement reactive ways to execute indexing operations (workers) and queries (SearchQuery interface). Don’t worry about the rest for now. In particular, let’s not consider scrolls yet.
The current APIs seem to mostly do the job, returning CompletableFuture for indexing works. For search queries, we could add an executeAsync() method, or rename the current (synchronous) execute to executeAndWait and introduce a new asynchronous execute.
Scrolling, or multi-result operations in general, will be another story. We may have to implement Flow.Publisher, but that requires Java 9 at least. So, I said above... let's not worry about that for now.
Note: it would be interesting to introduce some tests using the stub backend, maybe the POJO mapper, and RxJava2