--
>>>>>>>>>> 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 akka-user+...@googlegroups.com.
To post to this group, send email to akka...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.
Hi Roland,
I've read the documentation, several times, I've even given you feedback on the documentation in an earlier milestone phase. Also, the documentation for WebSockets in Akka is TODO and TODO. The documentation on the routing directives are extremely sparse. In particular, there are no promises around the implementation of back pressure from the new websockets.
What I'm missing is the ability to hook an existing actor system into something that expects a Flow, with back pressure preserved. I understand Flow, but I don't understand the implementation in terms of Actors (which incidentally, is exactly my primary feedback on the earlier documentation). You're now confusing me further by saying that Streams are not actors, because I was told at the time that streams are implemented in terms of actors.
In case you didn't pick up on it, I'm planning on moving away from wandoulabs, not integrate it. This is the key piece, distilled into a standalone problem.
Best regards, Sam
You received this message because you are subscribed to a topic in the Google Groups "Akka User List" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/akka-user/39HItLST7lw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to akka-user+...@googlegroups.com.
27 maj 2015 kl. 08:51 skrev Sam Halliday <sam.ha...@gmail.com>:Hi Roland,
I've read the documentation, several times, I've even given you feedback on the documentation in an earlier milestone phase. Also, the documentation for WebSockets in Akka is TODO and TODO. The documentation on the routing directives are extremely sparse. In particular, there are no promises around the implementation of back pressure from the new websockets.
What I'm missing is the ability to hook an existing actor system into something that expects a Flow, with back pressure preserved.
I understand Flow, but I don't understand the implementation in terms of Actors (which incidentally, is exactly my primary feedback on the earlier documentation). You're now confusing me further by saying that Streams are not actors, because I was told at the time that streams are implemented in terms of actors.
In case you didn't pick up on it, I'm planning on moving away from wandoulabs, not integrate it. This is the key piece, distilled into a standalone problem.
27 maj 2015 kl. 12:01 skrev Sam Halliday <sam.ha...@gmail.com>:Hi Roland,On Wednesday, 27 May 2015 08:18:09 UTC+1, rkuhn wrote:> For this venture you need no HTTP documentationActually I'd like to go futher than akka-http and see documentation thatallows me to use WebSockets with akka-io directly, bypassing theStreaming API.The historic limitation has always been that the HTTPConnectionManager of akka-io was unable to handle the upgraderequest. Wandoulabs use their own actor to handle HTTP and UHTTP,but it has annoying side effects. I'm interested to know howakka-http has managed to implement WebSockets with thatconstraint in place (or if that constraint has been lifted).
> The statement “there are no promises around back-pressure”> indicates that you did not, in fact, understand the full extent> of what Akka Streams are.Just because something is a Flow does not make any promises abouthow back pressure is actually implemented in that flow: you haveeven pointed out how to create "open hoses", or just blow upinternal buffers when downstream doesn't consume fast enough.
I'd like to know if the underlying Source of incoming clientmessages on a websocket endpoint will respect the backpressurefrom the `handleWebsocketMessages: Flow` that is dealing withit (i.e. not read from the network unless`handleWebsocketMessages` is pulling), and conversely if theunderlying Sink back to the client is going to backpressure usingakka-io's Ack mechanism so that `handleWebsocketMessages` willonly be pulled when akka-io gives the green lights.
> We’d love to improve the documentation in this regard, but we’d> need to first figure out where their deficiency is, hence I’m> talking with you.I think clarity on the above two points would be a good start. Inaddition, and more generally, integration between "hoses"and "hammers" is extremely important --- unless you intentionallywant to limit akka-streams uptake to green field projects only.The project I work on has 1.2 million lines of Scala code withlegacy components dating from Scala 2.6. There isn't a snowball'schance in hell of rewriting it to use akka-streams.
>> What I'm missing is the ability to hook an existing actor>> system into something that expects a Flow, with back pressure>> preserved.>> As I hopefully explained in my other mail about hoses: your> Actors would need to implement the full spec, they’d need to be> watertight.This is a start. Is there a test framework that can be used tostress test the implementation of a Stream / Actor bridge?
> How we implement Flows internally should be of no consequenceOn the contrary, I feel the implementation is of hugesignificance. Firstly, it helps to understand the expectedperformance, and second it is critical when writingintegration code. It is extremely bizarre that both projectsshould be released under the akka banner, yet be so siloed.
> In order to solve this particular problem you’ll need to> carefully describe the back-pressure protocol spoken by your> Actor.The Actor is expecting to send messages directly to akka-io andspeaks the akka-io Ack protocol using a simple object as the Ackmessage. It expects an Ack before it will send a messageupstream (and it greedily consumes data, but that could easily bechanged).
Best regards,Sam
--
>>>>>>>>>> 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 akka-user+...@googlegroups.com.
To post to this group, send email to akka...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.
Maybe I misunderstand you still, but ConnectionManager is not something that we have in Akka HTTP
Just because something is a Flow does not make any promises ...
This is not true: a Flow has one open input and one open output port and all data elements that flow through these ports will do so governed by the Reactive Streams back-pressure semantics. This means that the Flow has the ability to slow down the Source that is connected to it and it also reacts to slow-down requests from the Sink that it will be connected to.