Hi Endre,

I would also be interested in hearing about these experiences. As far as I
> know there are no small libraries out there to help with that.
>

I would like to write one (as a second version / attempt at future-streams,
which has design issues). But I don't have time to spare for it currently.
I'm also waiting to see what akka-streams will look like in its version 1.0.

When I started designing future-streams v2, one difference from v1 was
separating the API from the implementation. So I had a stateless,
declarative model for a stream (or a graph of streaming components) and
then a separate step to reify it into stateful components that also
implement RS interfaces.

This is like akka-stream's materialization, but akka-stream doesn't expose
(when I last checked) a model of the unmaterialized stream that I could
write a different materializer implementation for. And it's also not fully
general, because its idea of writing a completely custom Publisher or
Subscriber requires using an Actor, while the primitive I want to work with
is Future. (This may not be correct; I last looked at akka-stream a couple
of months ago and maybe things have changed or are planned to change.)

Does this sound similar to what you mean? Do you think akka-stream could or
will evolve in this direction in the future? Conversely, if someone
developed such a model separately, do you think it would be natural / easy
/ efficient to have an implementation materializing that model using
akka-stream?

My personal experience is that writing Publishers and Subscribers, while
> not trivial are not that hard to implement. Where it gets really
> complicated is when you start writing Processors.
>

If you have (generic) Publisher and Subscriber implementations, then you
just need one of each to make a Processor. But that may not be efficient,
if RS doesn't match your internal logic very well.

In future-streams I learned the lesson that having *every* component in the
pipeline implement RS is a bad idea: it's inefficient and causes code
complexity. If I wrote a v2 I would use different interfaces, with cheap
but explicit adaptors to RS available on request. In practice I only need
RS to bridge to other implementations.

-- 
Daniel Armak

-- 
>>>>>>>>>>      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 http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to