Actor Model

Today’s article describes the Actor Model.

The Actor Model is one part methodology, one part framework for building parallel, distributed systems.  Each “Actor” is an agent which does its own thing, and communicates with neighbouring Actors.  Both object-oriented programming and peer-to-peer networks share many of the concepts and constraints of Actor model systems.

From one of the early papers on the Actor Model (“Viewing Control Structures as Patterns of Passing Messages”, Carl Hewitt, 1976):

The actor metaphor for problem solving is a large human scientific society: each actor is a scientist.  Each has his her own duties, specialties, and contracts.  Control is decentralized among the actors.  Communication is highly stylized and formal using messages that are sent to individual actors.

To me the most startling and interesting concept of the Actor model is that communications are carried out between Actors A and B by creating a “messenger” – itself an actor! – and sending the messenger to actor B.

In object oriented programming, this would be a bit like calling a method with the ability to decide what parameters to pass after the method has started executing.  This would be a hardcore drug for dependency injection’ists!

Hewitt’s 1976 paper is seminal:

However I do think there is better reading on the topic, and Gul Agha’s articles in particular is a much more enjoyable read:

There is also a great little collection of links on the “E programming language” website:

Happy reading!


Tags: ,

2 Responses to “Actor Model”

  1. Carl Hewitt ( Says:

    You might be interested in the following:

    ActorScript(TM): Industrial strength integration of local and nonlocal concurrency for Client-cloud Computing

    which can be found here:

    • jtienhaara Says:

      Intriguing, thank you very much for sharing Carl! I look forward to reading your paper, it looks like an excellent read. I’m particularly excited about the blend of “old” (actor model) and “new” (XML, JSON).
      Any chance of an open source implementation being available in future? 🙂

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: