Dynamic Networks Everything I described so far is common to CSP (Communicating Sequential Processes) and the Actor model. Here’s what makes actors more general: Connections between actors are dynamic. Unlike processes in CSP, actors may establish communication channels dynamically. They may pass messages containing references to actors (or mailboxes). They can then send messages to those actors. Here’s a Scala example: receive { case (name: String, actor: Actor) => actor ! lookup(name) } The original message is a tuple combining a string and an actor object. The receiver sends the result of lookup(name) to the actor it has just learned about. Thus a new communication channel between the receiver and the unknown actor can be established at runtime. (In Kilim the same is possible by passing mailboxes via messages.)
J. Swalens, S. Marr, J. De Koster, and T. Van Cutsem. Proceedings of the Workshop on Programming Language Approaches to Concurrency and communication-cEntric Software (PLACES), volume 155 of PLACES '14, page 54--60. (April 2014)
J. De Koster, S. Marr, T. D'Hondt, and T. Van Cutsem. Proceedings of AGERE! 2013, 3rd International Workshop on Programming based on Actors, Agents, and Decentralized Control, page 61--68. (Oct 27, 2013)
S. Tasharofi, P. Dinges, and R. Johnson. ECOOP 2013 – Object-Oriented Programming, volume 7920 of Lecture Notes in Computer Science, page 302-326. Springer Berlin Heidelberg, (2013)
T. Renaux, L. Hoste, S. Marr, and W. De Meuter. Proceedings of the 2nd edition on Programming Systems, Languages and Applications based on Actors, Agents, and Decentralized Control Abstractions, page 35--46. (October 2012)