[ 
https://issues.apache.org/jira/browse/CAMEL-11236?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16050592#comment-16050592
 ] 

ASF GitHub Bot commented on CAMEL-11236:
----------------------------------------

GitHub user nicolaferraro opened a pull request:

    https://github.com/apache/camel/pull/1763

    CAMEL-11236: added gRPC streaming producer strategy

    Added a way to keep a gRPC stream open towards a remote server and send all 
exchanges inside that stream, routing all responses to another endpoint (usage 
added in the doc).
    
    It may be improved (error handling and backpressure), but I think it's ok 
as first pass.
    
    @dmvolod can you have a look at it?
    
    I've also renamed "processing strategy" (it's a new field in 2.20) to 
"consumer strategy" in order to introduce a "producer strategy" (RPC / 
STREAMING).

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/nicolaferraro/camel CAMEL-11236

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/camel/pull/1763.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1763
    
----
commit f9e0279576cc0b1d2809c2731c18214be757629a
Author: Nicola Ferraro <[email protected]>
Date:   2017-06-12T10:20:01Z

    CAMEL-11236: added gRPC streaming producer strategy

----


> camel-grpc - improve streaming capabilities to bridge reactive streams
> ----------------------------------------------------------------------
>
>                 Key: CAMEL-11236
>                 URL: https://issues.apache.org/jira/browse/CAMEL-11236
>             Project: Camel
>          Issue Type: New Feature
>          Components: camel-grpc
>            Reporter: Nicola Ferraro
>            Assignee: Nicola Ferraro
>             Fix For: 2.20.0
>
>
> We have grpc producer-only capabilities at the moment. After the 
> implementation of the grpc consumer side, it would be interesting to 
> investigate how we can make it easy to use grpc as transport for reactive 
> streams across network in different JVMs.
> Something like this from the sending side:
> {code}
> from("reactive-streams:datasource")
> to("grpc:my.Data?mehod=stream&host=xxx&port=yyy");
> {code}
> And this from the receiving side:
> {code}
> from("grpc:my.Data?mehod=stream&port=yyy")
> to("reactive-streams:datasink");
> {code}
> Then from a RX implementation one can send a stream of data to *datasource* 
> and receive it using the *datasink* stream in the other JVM.
> We can leverage the streaming capabilities of grpc (payloads and return types 
> can be "streams" of data).
> Grpc has also an internal way to handle backpressure using a bounded internal 
> buffer. We can "bridge" the grpc backpressure mechanism to the 
> reactive-streams one, to have a proper flow control.
> We should give to reactive-streams subscriptions an identifier to distinguish 
> between a new method call or a continuation of the current stream (something 
> like this is reported in CAMEL-11140).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to