You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Doug Cutting (JIRA)" <ji...@apache.org> on 2018/05/02 17:43:00 UTC

[jira] [Resolved] (AVRO-2172) Avro over gRPC (Java Implementation)

     [ https://issues.apache.org/jira/browse/AVRO-2172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Doug Cutting resolved AVRO-2172.
--------------------------------
       Resolution: Fixed
         Assignee: Srujan Narkedamalli
    Fix Version/s: 1.9.0

I committed this. Thanks, Srujan!

> Avro over gRPC (Java Implementation)
> ------------------------------------
>
>                 Key: AVRO-2172
>                 URL: https://issues.apache.org/jira/browse/AVRO-2172
>             Project: Avro
>          Issue Type: New Feature
>          Components: java
>            Reporter: Srujan Narkedamalli
>            Assignee: Srujan Narkedamalli
>            Priority: Major
>             Fix For: 1.9.0
>
>
> We (wavefront/VMware) have implemented a java library/module for using RPC defined using Avro (.avdl/.avpr) over gRPC, and would like to contribute this to Apache Avro. gRPC provides ability to build streaming RPC and also in terms of Java implementation its built on recent version of Netty (4.x).  
> Overview of our Avro-gRPC Java Implementation:
> gRPC by default provides support for Protobuf  IDL and the APIs are tuned towards it. Following are main differences in gRPC API/Protobuf and Avro's RPC IDL that our library bridges:
>  * Protobuf/gRPC supports only single argument for RPC request vs Avro's multiple arguments. This is handled in serialization logic.
>  * Protobuf/gRPC does not support throwing typed exceptions over wire natively. Avro’s typed RPC exceptions are handled in the serialization logic.
>  * Protobuf/gRPC does not support one-way RPC. We don’t avoid doing round-trip to server but respond back with null response as soon as request is received at server, and then invoke the server implementation.
>  * gRPC provides RPC code generation for Protobuf. For Avro, we use the current minimal code generation, and provide Client and Server Invocation handlers.
>  
> Can we have this as a new artifact/maven child project in Avro Java project with a name something like `avro-grpc` ?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)