[ https://issues.apache.org/jira/browse/CAMEL-15751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17220245#comment-17220245 ]
Dmitry Volodin commented on CAMEL-15751: ---------------------------------------- Hi [~rajasekharb] . Could you please separate issues from each others: # Base improvement to provide access to stream observer in the camel Exchange # Another improvement related to the _GrpcRequestPropagationStreamObserver_ _For the second, please open a new one with the case of improvement and leave in the current issue and PR just a new feature_ _Thank you._ > camel-grpc - Provide access to stream observer in the camel Exchange > -------------------------------------------------------------------- > > Key: CAMEL-15751 > URL: https://issues.apache.org/jira/browse/CAMEL-15751 > Project: Camel > Issue Type: New Feature > Components: camel-grpc > Reporter: Rajasekhar Bhupasamudram > Assignee: Dmitry Volodin > Priority: Minor > Fix For: 3.7.0 > > > Current camel-grpc module provides both the consumer and producer abilities. > But, does not allow the camel route to have control over when the responses > are sent back to the client. > > {code:java} > <route> > <from > uri="grpc://remotehost:1101/org.apache.camel.component.grpc.PingPong?consumerStrategy=PROPAGATION"/> > <process ref="myCustomProcessor" /> > </route> > {code} > > Consider the as an example for grpc consumer (server streaming end point). > In the above, myCustomProcessor can modify the Exchange and set a Message, > but if it needs to respond to the client multiple times with a time gap, > using _responseObserver.onNext()_ method calls, then it can't. There is a > possibility to collect all the responses in a list and send the list items > one after the other. But, if the processor needs to wait for certain amount > of time to compute the next response, and then invoke the onNext, it is not > possible. > I think it is a limitation of the camel-grpc component and propose to enhance > it by setting the responseObserver as a property in the Exchange object. > Another improvement that I see is that, In the > _GrpcRequestPropagationStreamObserver_, > # The _responseStream.onCompleted()_ is called every time an onNext is > invoked. This does not leverage the Http 2.0 abilities to send the responses > back to the client asynchronously. > # Every time, the camel route is traversed, the server is sending some > response to the client using the onNext method calls. But, sometimes, it may > be a good idea to not to send any data immediately. > I propose to allow the camel route to control this behavior with some > properties. > -- This message was sent by Atlassian Jira (v8.3.4#803005)