Skip to content

01: My journey towards understanding distribution#1

Merged
rkuhn merged 1 commit intomasterfrom
wip-01
Nov 20, 2016
Merged

01: My journey towards understanding distribution#1
rkuhn merged 1 commit intomasterfrom
wip-01

Conversation

@rkuhn
Copy link
Owner

@rkuhn rkuhn commented Nov 20, 2016

No description provided.

@rkuhn rkuhn merged commit 381d6b2 into master Nov 20, 2016
@rkuhn rkuhn deleted the wip-01 branch November 20, 2016 15:16
@acjay
Copy link

acjay commented Dec 9, 2016

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!

@rkuhn
Copy link
Owner Author

rkuhn commented Dec 12, 2016

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 :-)

@nestmann
Copy link

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.

@rkuhn
Copy link
Owner Author

rkuhn commented Jan 2, 2017

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?

@nestmann
Copy link

nestmann commented Jan 2, 2017

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).

@rkuhn
Copy link
Owner Author

rkuhn commented Jan 21, 2017

There’s a follow-up showing the sub-actor process DSL in #2.

@rkuhn
Copy link
Owner Author

rkuhn commented Jan 28, 2017

@nestmann How can I access your paper without paying Springer for it? (I’d assume that the research is funded by my taxes, right?)

@nestmann
Copy link

nestmann commented Jan 31, 2017

@rkuhn Things change ... too slowly.
Open Access is coming, though.
Not for older stuff.

@clayrat
Copy link

clayrat commented Feb 4, 2017

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

@rkuhn
Copy link
Owner Author

rkuhn commented Feb 5, 2017

Thanks for the pointer @clayrat, that looks very interesting indeed!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants