private CompletableFuture<Object> invokeAsync(String methodName, Object argument, Type returnType)
      throws IOException {

    ByteBuffer requestPayload = writeRequest(methodName, argument);

    InvokeRequest invokeRequest =
        InvokeRequest.builder().functionName(functionName).payload(requestPayload).build();

    CompletableFuture<InvokeResponse> pendingRequest = lambda.invoke(invokeRequest);
    return pendingRequest.thenApply(r -> readResponse(returnType, r));
  }
Invoke a JSON-RPC method asynchronously without compile-time type-checking.

<p>This overload is private, because it should only be used by the {@link
JsonRpcLambdaProxyAdapter} (which requires a non-typesafe invoke method).
json-rpc-lambda-client/src/main/java/com/amazonaws/blox/jsonrpc/JsonRpcLambdaClient.java