If we shade the grpc dependency of Java client, it would avoid conflicts with a different version of grpc dependency that user code might have. I have faced these issues with Spark (or MapR), spark internally uses its own grpc version that will, for sure, conflict with java client. Shading, will solve this problem permanently. We will have to figure out a way to serve the shaded jar as production jar, though.