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

2018-04-27 Thread Srujan Narkedamalli (JIRA)
Srujan Narkedamalli created AVRO-2172:
-

 Summary: 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


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)


[jira] [Created] (AVRO-2180) grpc-avro|Java: transport exceptions from client to server as Metadata in

2018-05-22 Thread Srujan Narkedamalli (JIRA)
Srujan Narkedamalli created AVRO-2180:
-

 Summary: grpc-avro|Java: transport exceptions from client to 
server as Metadata in  
 Key: AVRO-2180
 URL: https://issues.apache.org/jira/browse/AVRO-2180
 Project: Avro
  Issue Type: Improvement
  Components: java
Affects Versions: 1.8.2
Reporter: Srujan Narkedamalli


Context:

Currently in grpc-avro library, avro RPC exceptions are transported to from 
server to client as part of a response (using a boolean field at the head of 
response payload to indicate whether its actual response or error) similar to 
avro-ipc's response serialization logic.

 Problem:

By encapsulating server exception as a regular response, its not visible for 
gRPC to know when an error response is being sent. And any error metrics 
computed gRPC on their stream listeners won't capture these errors.

Proposed Solution:

Send server error as io.grpc.StatusRuntimeException (which is perferred way of 
error), with appropriate Status code(probably Internal), and include the actual 
avro serialized error as Metadata attached to it.

Impact:

This would change RPC response wire format and won't be backward compatible.



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


[jira] [Updated] (AVRO-2180) grpc-avro|Java: transport exceptions from client to server as Metadata in io.grpc.StatusRuntimeException

2018-05-22 Thread Srujan Narkedamalli (JIRA)

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

Srujan Narkedamalli updated AVRO-2180:
--
Summary: grpc-avro|Java: transport exceptions from client to server as 
Metadata in io.grpc.StatusRuntimeException  (was: grpc-avro|Java: transport 
exceptions from client to server as Metadata in  )

> grpc-avro|Java: transport exceptions from client to server as Metadata in 
> io.grpc.StatusRuntimeException
> 
>
> Key: AVRO-2180
> URL: https://issues.apache.org/jira/browse/AVRO-2180
> Project: Avro
>  Issue Type: Improvement
>  Components: java
>Affects Versions: 1.8.2
>Reporter: Srujan Narkedamalli
>Priority: Major
>
> Context:
> Currently in grpc-avro library, avro RPC exceptions are transported to from 
> server to client as part of a response (using a boolean field at the head of 
> response payload to indicate whether its actual response or error) similar to 
> avro-ipc's response serialization logic.
>  Problem:
> By encapsulating server exception as a regular response, its not visible for 
> gRPC to know when an error response is being sent. And any error metrics 
> computed gRPC on their stream listeners won't capture these errors.
> Proposed Solution:
> Send server error as io.grpc.StatusRuntimeException (which is perferred way 
> of error), with appropriate Status code(probably Internal), and include the 
> actual avro serialized error as Metadata attached to it.
> Impact:
> This would change RPC response wire format and won't be backward compatible.



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


[jira] [Updated] (AVRO-2180) grpc-avro|Java: transport exceptions from server to client as Metadata in io.grpc.StatusRuntimeException

2018-05-22 Thread Srujan Narkedamalli (JIRA)

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

Srujan Narkedamalli updated AVRO-2180:
--
Summary: grpc-avro|Java: transport exceptions from server to client as 
Metadata in io.grpc.StatusRuntimeException  (was: grpc-avro|Java: transport 
exceptions from client to server as Metadata in io.grpc.StatusRuntimeException)

> grpc-avro|Java: transport exceptions from server to client as Metadata in 
> io.grpc.StatusRuntimeException
> 
>
> Key: AVRO-2180
> URL: https://issues.apache.org/jira/browse/AVRO-2180
> Project: Avro
>  Issue Type: Improvement
>  Components: java
>Affects Versions: 1.8.2
>Reporter: Srujan Narkedamalli
>Priority: Major
>
> Context:
> Currently in grpc-avro library, avro RPC exceptions are transported to from 
> server to client as part of a response (using a boolean field at the head of 
> response payload to indicate whether its actual response or error) similar to 
> avro-ipc's response serialization logic.
>  Problem:
> By encapsulating server exception as a regular response, its not visible for 
> gRPC to know when an error response is being sent. And any error metrics 
> computed gRPC on their stream listeners won't capture these errors.
> Proposed Solution:
> Send server error as io.grpc.StatusRuntimeException (which is perferred way 
> of error), with appropriate Status code(probably Internal), and include the 
> actual avro serialized error as Metadata attached to it.
> Impact:
> This would change RPC response wire format and won't be backward compatible.



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


[jira] [Created] (AVRO-2187) Add RPC Streaming constructs/keywords to Avro IDL or schema

2018-06-07 Thread Srujan Narkedamalli (JIRA)
Srujan Narkedamalli created AVRO-2187:
-

 Summary: Add RPC Streaming constructs/keywords to Avro IDL or 
schema
 Key: AVRO-2187
 URL: https://issues.apache.org/jira/browse/AVRO-2187
 Project: Avro
  Issue Type: New Feature
Reporter: Srujan Narkedamalli


Motivation:

We recently added support for transporting Avro serialization and IDL over gRPC 
for Java. In order to use the streaming features of gRPC or any other transport 
that supports streaming we need to be able to specify them IDL and schema.

Details:

Currently, gRPC supports 3 types of streaming calls:
 # server streaming (server can send multiple responses for a single request)
 # client streaming (client can multiple requests and server sends a single 
response)
 # bi-directional streaming call (on going rpc with multiple requests and 
responses)

We would want a way to represent these types on calls in Avro's IDL similar to 
one-way calls using a keywords. Usually in gRPC with other IDLs a streaming 
request or response is repeated payload of same type. For client streaming and 
bi-directional streaming it would be simpler to have a single request argument 
when representing their type in callbacks.



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


[jira] [Commented] (AVRO-2187) Add RPC Streaming constructs/keywords to Avro IDL or schema

2018-06-07 Thread Srujan Narkedamalli (JIRA)


[ 
https://issues.apache.org/jira/browse/AVRO-2187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16505579#comment-16505579
 ] 

Srujan Narkedamalli commented on AVRO-2187:
---

[~cutting] Could you please share your thoughts on this?

> Add RPC Streaming constructs/keywords to Avro IDL or schema
> ---
>
> Key: AVRO-2187
> URL: https://issues.apache.org/jira/browse/AVRO-2187
> Project: Avro
>  Issue Type: New Feature
>Reporter: Srujan Narkedamalli
>Priority: Major
>
> Motivation:
> We recently added support for transporting Avro serialization and IDL over 
> gRPC for Java. In order to use the streaming features of gRPC or any other 
> transport that supports streaming we need to be able to specify them IDL and 
> schema.
> Details:
> Currently, gRPC supports 3 types of streaming calls:
>  # server streaming (server can send multiple responses for a single request)
>  # client streaming (client can multiple requests and server sends a single 
> response)
>  # bi-directional streaming call (on going rpc with multiple requests and 
> responses)
> We would want a way to represent these types on calls in Avro's IDL similar 
> to one-way calls using a keywords. Usually in gRPC with other IDLs a 
> streaming request or response is repeated payload of same type. For client 
> streaming and bi-directional streaming it would be simpler to have a single 
> request argument when representing their type in callbacks.



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


[jira] [Commented] (AVRO-2187) Add RPC Streaming constructs/keywords to Avro IDL or schema

2018-07-02 Thread Srujan Narkedamalli (JIRA)


[ 
https://issues.apache.org/jira/browse/AVRO-2187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16530314#comment-16530314
 ] 

Srujan Narkedamalli commented on AVRO-2187:
---

Thanks for your response and very sorry for the delay in getting back.

Avro's one-way is quite useful and unique, but the streaming that I was 
referring for to is a bit different and more in line with what gRPC offers.

What I mentioned as server streaming rpc is a single rpc request by client that 
yeilds a repeated response from server (of defined type). An example of this be 
a request by client for fetching a list of files from a storage like s3 and 
each of file is sent as response of for rpc request. Similarly for 
client-streaming rpc, multiple requests (of defined type) can be sent for 
single requests and sever sends back a single response. In bi-directional 
streaming both multiple requests and responses can be sent but all in context 
of single RPC. The difference/improvement from one-way calls is being able to 
receive multiple responses or send multiple requests in context of a single RPC.

In order to use such streaming calls provided by gRPC in Avro's IDL, we are 
currently annotating the calls with our custom annotations and modified the 
velocity templates for stub code generation for these. Instead of these 
annotations we would prefer to have this information specified as a Avro 
keyword to make sure its compatible for different languages and info is in the 
schema.

One way I see for this change to be backward compatible is, every rpc marked as 
streaming yeilds two rpcs: regular rpc call and in addition a streaming call 
with call name appended streaming probably and has the property streaming. 
Generating the additional streaming rpc could be an option.

Our avro avdl file for a server streaming RPC looks like this:
{code:java}
@(io.grpc.ServerStreaming)
File searchByNameAndStreamFiles(string name);

//our custom modified generated code is as below, (StreamObserver is gRPC API):
void searchByNameAndStreamFiles(string name, StreamObserver name); {code}
 

We would prefer to have the above schema be represented as:
{code:java}
File searchByNameAndStreamFiles(string name) serverstreaming;
{code}
For comparison: gRPC's preferred IDL- Protobuf, represent a similar server 
streaming call as:
{code:java}
rpc searchByNameAndStreamFiles (SearchRequest) returns (stream File) {}
{code}

> Add RPC Streaming constructs/keywords to Avro IDL or schema
> ---
>
> Key: AVRO-2187
> URL: https://issues.apache.org/jira/browse/AVRO-2187
> Project: Avro
>  Issue Type: New Feature
>Reporter: Srujan Narkedamalli
>Priority: Major
>
> Motivation:
> We recently added support for transporting Avro serialization and IDL over 
> gRPC for Java. In order to use the streaming features of gRPC or any other 
> transport that supports streaming we need to be able to specify them IDL and 
> schema.
> Details:
> Currently, gRPC supports 3 types of streaming calls:
>  # server streaming (server can send multiple responses for a single request)
>  # client streaming (client can multiple requests and server sends a single 
> response)
>  # bi-directional streaming call (on going rpc with multiple requests and 
> responses)
> We would want a way to represent these types on calls in Avro's IDL similar 
> to one-way calls using a keywords. Usually in gRPC with other IDLs a 
> streaming request or response is repeated payload of same type. For client 
> streaming and bi-directional streaming it would be simpler to have a single 
> request argument when representing their type in callbacks.



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


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

2018-05-01 Thread Srujan Narkedamalli (JIRA)

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

Srujan Narkedamalli commented on AVRO-2172:
---

Thank you, Submitted a pull request on Github.

> 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
>Priority: Major
>
> 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)


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

2018-05-01 Thread Srujan Narkedamalli (JIRA)

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

Srujan Narkedamalli edited comment on AVRO-2172 at 5/2/18 4:15 AM:
---

Thank you, Submitted a pull request on Github.

 

The PR proposes a new maven module "avro-grpc". Added the Apache license to all 
the files and made sure the build passes the tests.


was (Author: srujann):
Thank you, Submitted a pull request on Github.

> 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
>Priority: Major
>
> 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)


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

2018-05-02 Thread Srujan Narkedamalli (JIRA)

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

Srujan Narkedamalli edited comment on AVRO-2172 at 5/2/18 6:41 PM:
---

Thanks for accepting this contribution. We are very excited to have this on 
Avro.

A question on when we can being to use the avro-grpc artifact, do you know the 
release date for Avro 1.9.0?

 


was (Author: srujann):
Thanks for accepting this contribution. We are very excited to have this on 
Avro.

A question on when we can being to use the avro-grpc artifact, do you know what 
would be release date for Avro 1.9.0?

 

> 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)


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

2018-05-02 Thread Srujan Narkedamalli (JIRA)

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

Srujan Narkedamalli commented on AVRO-2172:
---

Thanks for accepting this contribution. We are very excited to have this on 
Avro.

A question on when we can being to use the avro-grpc artifact, do you know what 
would be release date for Avro 1.9.0?

 

> 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)


[jira] [Commented] (AVRO-2187) Add RPC Streaming constructs/keywords to Avro IDL or schema

2018-07-20 Thread Srujan Narkedamalli (JIRA)


[ 
https://issues.apache.org/jira/browse/AVRO-2187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16551438#comment-16551438
 ] 

Srujan Narkedamalli commented on AVRO-2187:
---

Returning full list of results for non streaming API looks correct. 

Regarding @stream annotation, is it possible to do code generation using it in 
languages other than Java in Avro? 

Also, there was a mistake in the example IDL of how we use it today. The 
annotation is wrapped as @javaAnnotation("io.grpc.ServerStreaming") field for 
easily working with current compiler. Due to this we were concerned about 
extending streaming stubs/generated with avro in other languages. 

With @stream annotation, would the IDL for a client streaming request look as 
below? 

{code:java}
boolean upload(@stream File file);
{code}


> Add RPC Streaming constructs/keywords to Avro IDL or schema
> ---
>
> Key: AVRO-2187
> URL: https://issues.apache.org/jira/browse/AVRO-2187
> Project: Avro
>  Issue Type: New Feature
>Reporter: Srujan Narkedamalli
>Priority: Major
>
> Motivation:
> We recently added support for transporting Avro serialization and IDL over 
> gRPC for Java. In order to use the streaming features of gRPC or any other 
> transport that supports streaming we need to be able to specify them IDL and 
> schema.
> Details:
> Currently, gRPC supports 3 types of streaming calls:
>  # server streaming (server can send multiple responses for a single request)
>  # client streaming (client can multiple requests and server sends a single 
> response)
>  # bi-directional streaming call (on going rpc with multiple requests and 
> responses)
> We would want a way to represent these types on calls in Avro's IDL similar 
> to one-way calls using a keywords. Usually in gRPC with other IDLs a 
> streaming request or response is repeated payload of same type. For client 
> streaming and bi-directional streaming it would be simpler to have a single 
> request argument when representing their type in callbacks.



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


[jira] [Commented] (AVRO-2187) Add RPC Streaming constructs/keywords to Avro IDL or schema

2018-07-23 Thread Srujan Narkedamalli (JIRA)


[ 
https://issues.apache.org/jira/browse/AVRO-2187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16553553#comment-16553553
 ] 

Srujan Narkedamalli commented on AVRO-2187:
---

If we are using only boolean property on the message i think it would actually 
indicate only whether the response is streamed. So we could have this property 
as "reponseStreaming". I think the info regarding request streaming should also 
be a message level property ("requestStreaming") rather than in protocol 
request to avoid confusion .

> Add RPC Streaming constructs/keywords to Avro IDL or schema
> ---
>
> Key: AVRO-2187
> URL: https://issues.apache.org/jira/browse/AVRO-2187
> Project: Avro
>  Issue Type: New Feature
>Reporter: Srujan Narkedamalli
>Priority: Major
>
> Motivation:
> We recently added support for transporting Avro serialization and IDL over 
> gRPC for Java. In order to use the streaming features of gRPC or any other 
> transport that supports streaming we need to be able to specify them IDL and 
> schema.
> Details:
> Currently, gRPC supports 3 types of streaming calls:
>  # server streaming (server can send multiple responses for a single request)
>  # client streaming (client can multiple requests and server sends a single 
> response)
>  # bi-directional streaming call (on going rpc with multiple requests and 
> responses)
> We would want a way to represent these types on calls in Avro's IDL similar 
> to one-way calls using a keywords. Usually in gRPC with other IDLs a 
> streaming request or response is repeated payload of same type. For client 
> streaming and bi-directional streaming it would be simpler to have a single 
> request argument when representing their type in callbacks.



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


[jira] [Comment Edited] (AVRO-2187) Add RPC Streaming constructs/keywords to Avro IDL or schema

2018-07-24 Thread Srujan Narkedamalli (JIRA)


[ 
https://issues.apache.org/jira/browse/AVRO-2187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16553553#comment-16553553
 ] 

Srujan Narkedamalli edited comment on AVRO-2187 at 7/24/18 8:49 AM:


If we are using boolean property on the message, it is actually indicating only 
whether the response is streaming type or not. So we could have this property 
as "reponseStreaming". I think the info regarding request streaming should also 
be a message level boolean property ("requestStreaming") rather than field in 
protocol request to avoid confusion .


was (Author: srujann):
If we are using only boolean property on the message i think it would actually 
indicate only whether the response is streamed. So we could have this property 
as "reponseStreaming". I think the info regarding request streaming should also 
be a message level property ("requestStreaming") rather than in protocol 
request to avoid confusion .

> Add RPC Streaming constructs/keywords to Avro IDL or schema
> ---
>
> Key: AVRO-2187
> URL: https://issues.apache.org/jira/browse/AVRO-2187
> Project: Avro
>  Issue Type: New Feature
>Reporter: Srujan Narkedamalli
>Priority: Major
>
> Motivation:
> We recently added support for transporting Avro serialization and IDL over 
> gRPC for Java. In order to use the streaming features of gRPC or any other 
> transport that supports streaming we need to be able to specify them IDL and 
> schema.
> Details:
> Currently, gRPC supports 3 types of streaming calls:
>  # server streaming (server can send multiple responses for a single request)
>  # client streaming (client can multiple requests and server sends a single 
> response)
>  # bi-directional streaming call (on going rpc with multiple requests and 
> responses)
> We would want a way to represent these types on calls in Avro's IDL similar 
> to one-way calls using a keywords. Usually in gRPC with other IDLs a 
> streaming request or response is repeated payload of same type. For client 
> streaming and bi-directional streaming it would be simpler to have a single 
> request argument when representing their type in callbacks.



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


[jira] [Commented] (AVRO-2187) Add RPC Streaming constructs/keywords to Avro IDL or schema

2018-07-19 Thread Srujan Narkedamalli (JIRA)


[ 
https://issues.apache.org/jira/browse/AVRO-2187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16549756#comment-16549756
 ] 

Srujan Narkedamalli commented on AVRO-2187:
---

[~cutting] do you think the proposal in previous comment is feasible?

> Add RPC Streaming constructs/keywords to Avro IDL or schema
> ---
>
> Key: AVRO-2187
> URL: https://issues.apache.org/jira/browse/AVRO-2187
> Project: Avro
>  Issue Type: New Feature
>Reporter: Srujan Narkedamalli
>Priority: Major
>
> Motivation:
> We recently added support for transporting Avro serialization and IDL over 
> gRPC for Java. In order to use the streaming features of gRPC or any other 
> transport that supports streaming we need to be able to specify them IDL and 
> schema.
> Details:
> Currently, gRPC supports 3 types of streaming calls:
>  # server streaming (server can send multiple responses for a single request)
>  # client streaming (client can multiple requests and server sends a single 
> response)
>  # bi-directional streaming call (on going rpc with multiple requests and 
> responses)
> We would want a way to represent these types on calls in Avro's IDL similar 
> to one-way calls using a keywords. Usually in gRPC with other IDLs a 
> streaming request or response is repeated payload of same type. For client 
> streaming and bi-directional streaming it would be simpler to have a single 
> request argument when representing their type in callbacks.



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


[jira] [Comment Edited] (AVRO-2187) Add RPC Streaming constructs/keywords to Avro IDL or schema

2018-07-24 Thread Srujan Narkedamalli (JIRA)


[ 
https://issues.apache.org/jira/browse/AVRO-2187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16553553#comment-16553553
 ] 

Srujan Narkedamalli edited comment on AVRO-2187 at 7/24/18 8:50 AM:


If we are using boolean property on the message, it is actually indicating only 
whether the response is streaming type. So we could have this property as 
"reponseStreaming". The info regarding whether request is streaming type should 
also be a message level boolean property ("requestStreaming") rather than field 
in protocol request to avoid confusion .


was (Author: srujann):
If we are using boolean property on the message, it is actually indicating only 
whether the response is streaming type or not. So we could have this property 
as "reponseStreaming". I think the info regarding request streaming should also 
be a message level boolean property ("requestStreaming") rather than field in 
protocol request to avoid confusion .

> Add RPC Streaming constructs/keywords to Avro IDL or schema
> ---
>
> Key: AVRO-2187
> URL: https://issues.apache.org/jira/browse/AVRO-2187
> Project: Avro
>  Issue Type: New Feature
>Reporter: Srujan Narkedamalli
>Priority: Major
>
> Motivation:
> We recently added support for transporting Avro serialization and IDL over 
> gRPC for Java. In order to use the streaming features of gRPC or any other 
> transport that supports streaming we need to be able to specify them IDL and 
> schema.
> Details:
> Currently, gRPC supports 3 types of streaming calls:
>  # server streaming (server can send multiple responses for a single request)
>  # client streaming (client can multiple requests and server sends a single 
> response)
>  # bi-directional streaming call (on going rpc with multiple requests and 
> responses)
> We would want a way to represent these types on calls in Avro's IDL similar 
> to one-way calls using a keywords. Usually in gRPC with other IDLs a 
> streaming request or response is repeated payload of same type. For client 
> streaming and bi-directional streaming it would be simpler to have a single 
> request argument when representing their type in callbacks.



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