Sergey,
I have a few remarks after cursory reading of your code:

- Akka Streams (and Reactrive Streams) are pull based. As the messages 
travel downstream, virtual demand tokens travel upstream. Each graph 
element is allowed to push elements downstream only when demand is 
signaled. This means that you must keep track of demand carefully. In a 
GraphStage that is flow-shaped (has both inlets and outlets), flow of data 
is initiated by a pull on it's outlets. If you fails to propagate such pull 
to some (or all) of your GraphStage's inlets things are going to stall. In 
your test code, you put debut statements in onPush methods, but you should 
also monitor onPull

- There's something strange with your balancer component. Either I'm 
misreading things, or you removed some important details while editing the 
code for publication, but it seems to me that each Data input element will 
be processed in a dedicated, parallel finderFlow / each finderFlow will 
ever see only a single element. This also could be a reason of the "clog" 
you experience.

- In general I would suggest building your flow processing "outwards": 
first try to validate that managementFlow works in isolation (unit tests 
with Stream Test Kit would be recommended here) and once you have this 
settled, build and test large flows progressively.

Hope that helps,
Rafał


-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to