I am +1 to this approach. Some thoughts inline. How would query timeout be respected in this approach?
> The default approach might be configured to throw > UnsupportedOperationException, or perhaps might simply use an Executor to > get it done in an obvious way (assuming we can get ahold of an Executor > somewhere?). > Would that mean that we use an Executor to execute a single thread? >> CompletableFuture, and which merely takes the SolrRequest parameter and nothing else. Alternatively the client could supply a CompletableFuture parameter that Solr will call complete() on etc. but that seems a bit less natural to the notion of a method that returns it's results, albeit with a wrapper. I would think that we allow users to specify their callback. One of the advantages of AsyncListener is that it a custom implementation can allow users to handle the behaviour of timeout and other events. We should retain that behaviour. -- Regards, Atri Apache Concerted