Conversation
|
Awesome write-up. I must admit, I was a little bit let down that it didn't end with The Solution. But I feel like you're on to something, and when you find it, it's going to have a major impact. It's become a common meme that Akka provides impressive high-level tools, but actors themselves aren't amenable to direct usage, in favor of less powerful, less tricky async constructs, like futures, agents, and streams. I think the lack of typesafety and composability are major reasons for this perception. I've been really impressed in turn by Akka, Akka Typed, and Reactors. But the point you made about the read side of the Reactor channel unfortunately being serializable/sendable touched on something that had stuck in my mind when reading their example code. I've been trying to find good analysis on Reactors, and this finally scratches that itch. This is a great survey of that, and other work. Thanks! |
|
Thanks for your kind words! I hope that I’ll be able to document some progress after the holidays—it has become a tradition to hack on typed Akka things during that time :-) |
|
Concerning your remarks on the Pi-Calculus, you may enjoy our paper "On Distributability in Process Calculi" that appeared in ESOP 2013 (see http://link.springer.com/chapter/10.1007%2F978-3-642-37036-6_18). Among other things, it formally clarifies in how far even the asynchronous pi-calculus is not distributable, while the Join-Calculus (see http://join.inria.fr/) is. Yes, it is about the uniqueness of message routing (avoiding Consensus) and about locality. In a Master's thesis later on, we showed that (1) the Join-Calculus, (2) an Actor Calculus (by Thati and Agha) and (3) the Localized pi-Calculus lie within the same class of distributability. |
|
Sorry for the delay, @nestmann, and thanks for these references! I am aware of the Join calculus, but find its join conditions too powerful to implement as a user-level API, do you know examples that I should study? |
|
No problem for the delay.! As for "simple" implementation ideas, there is "Compiling Join Patterns" (see http://hevea.inria.fr/examples/pat.html and/or http://www.sciencedirect.com/science/article/pii/S1571066104001434). There is also a Followup called "Algebraic Pattern Matching In Join Calculus" (see https://arxiv.org/pdf/0802.4018.pdf). |
|
There’s a follow-up showing the sub-actor process DSL in #2. |
|
@nestmann How can I access your paper without paying Springer for it? (I’d assume that the research is funded by my taxes, right?) |
|
@rkuhn Things change ... too slowly. |
|
Regarding the implementations of join-calculus in Scala, there's a recent (and quite active) one by Sergei Winitzki: https://github.com/Chymyst/joinrun-scala |
|
Thanks for the pointer @clayrat, that looks very interesting indeed! |
No description provided.