Details

    • Sub-task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 0.8.1
    • 0.8.5
    • None
    • None

    Description

      akka-streams requires the ability to access both upstream and downstream processors. For upstream akka-streams will pull - we need to emulate something similar

      Attachments

        Activity

          Kam Kasravi Kam Kasravi added a comment -

          It depends on the type of GraphStage in akka-streams. Upstreams could halt along batch boundaries. Downstreams could cache. Here are some GraphStage examples:
          Concat[T]

          • Takes multiple streams and outputs one stream formed from the input streams
          • by first emitting all of the elements from the first stream and then emitting
          • all of the elements from the second stream, etc.
            Interleave[T]
          • Interleave represents deterministic merge which takes N elements per input stream,
          • in-order of inputs, emits them downstream and then cycles/"wraps-around" the inputs.
            MergeSorted[T: Ordering]
          • Merge two pre-sorted streams such that the resulting stream is sorted.
          Kam Kasravi Kam Kasravi added a comment - It depends on the type of GraphStage in akka-streams. Upstreams could halt along batch boundaries. Downstreams could cache. Here are some GraphStage examples: Concat [T] Takes multiple streams and outputs one stream formed from the input streams by first emitting all of the elements from the first stream and then emitting all of the elements from the second stream, etc. Interleave [T] Interleave represents deterministic merge which takes N elements per input stream, in-order of inputs, emits them downstream and then cycles/"wraps-around" the inputs. MergeSorted [T: Ordering] Merge two pre-sorted streams such that the resulting stream is sorted.
          mauzhang Manu Zhang added a comment -

          Not sure how that works with flow control. Remember we ack messages in a batch way so what will happen for those outgoing unacked messages if a flow is halted. And will that fail the message checking mechanism ?

          mauzhang Manu Zhang added a comment - Not sure how that works with flow control. Remember we ack messages in a batch way so what will happen for those outgoing unacked messages if a flow is halted. And will that fail the message checking mechanism ?
          Kam Kasravi Kam Kasravi added a comment - - edited

          For this JIRA, GEARPUMP-193 and GEARPUMP-191 a control message to halt one or more upstreams is I believe all we need. Manu Zhang is there overlap with this functionality and the add watermark - there doesn't seem to be but thought I would check. I will implement this feature and see if it addresses current akka-streams GraphStages that require this functionality.

          Kam Kasravi Kam Kasravi added a comment - - edited For this JIRA, GEARPUMP-193 and GEARPUMP-191 a control message to halt one or more upstreams is I believe all we need. Manu Zhang is there overlap with this functionality and the add watermark - there doesn't seem to be but thought I would check. I will implement this feature and see if it addresses current akka-streams GraphStages that require this functionality.
          Kam Kasravi Kam Kasravi added a comment -

          prerequisite for some of akka-streams GraphStages

          Kam Kasravi Kam Kasravi added a comment - prerequisite for some of akka-streams GraphStages

          People

            Kam Kasravi Kam Kasravi
            Kam Kasravi Kam Kasravi

            Dates

              Created:
              Updated:

              Slack

                Issue deployment