tombentley commented on pull request #9878: URL: https://github.com/apache/kafka/pull/9878#issuecomment-764685652
Note that `CompletionStage` on its own does not define `get`, `getNow`, which are vital methods for people wanting to use the client in a sync fashion, so I think the comparison is between `Admin2` API which used `CompletableFuture` and `Admin` using a `KafkaFuture` that implemented `CompletionStage`. I suppose you could use `toCompletableFuture`, but then it's less of a drop-in replacement. A `KafkaFuture` that implemented `CompletionStage` adds very little additional value over `CompletableFuture` in the long term, _except_ the value of backwards compatibility. Anything like `Admin2`: * would require quite a lot of work by the project (e.g. doubled test surface), albeit not a burden to be carried forever, and maybe the thin facade idea means it wouldn't really be so bad * incurs a cost to users of discovering and switching to the new API, which offers nothing they couldn't do with a `KafkaFuture` that implemented `CompletionStage`. My gut feeling is that if the only reason for an `Admin2` was to get rid of `KafkaFuture` then there doesn't seem to be enough of a benefit to justify it. If there were other things which could be cleaned up at the same time then perhaps that would shift the balance. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org