I am finding it a bit hard to understand some of what you said. Maybe it is because we are not really that familiar with Java on our team.
I realise that we force the users of this client to use DgraphGrpc.DgraphBlockingStub, which takes away the choice of using the asynchronous grpc client. Ideally we would like the user to choose what they want. But at the same time, we don’t want to have repetitive code to support both clients.
It sounds like you are suggesting that we could use this Future Converter project to acheive that, but I am not able to follow exactly how that would work. Could you elaborate if possible?
You could always provide a sync client that delegates to the async client and then blocks on the CompletableFuture responses (calling get(...) with reasonable/configured timeouts).
@liqweed /@deepakjois@manishrjain : This is what we need as well. Our framework for microservices with backend as Lagom doesnt recommend us to use blocking database calls due to which the other option is to create an executor and delegate the db call to other threads. Had the response of DGraph be in ListenableFuture/CompletableFuture life would have been much easy.
Hoping to get this patch soon.