Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-11236

camel-grpc - improve streaming capabilities to bridge reactive streams

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.20.0
    • camel-grpc
    • None
    • Unknown

    Description

      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:

      from("reactive-streams:datasource")
      to("grpc:my.Data?mehod=stream&host=xxx&port=yyy");
      

      And this from the receiving side:

      from("grpc:my.Data?mehod=stream&port=yyy")
      to("reactive-streams:datasink");
      

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

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            nferraro Nicola Ferraro
            nferraro Nicola Ferraro
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment