The Actor Model and Message Passing Implementation

Registered by Duncan McGreggor

Evenlet was started by Bob Ippolito and Dononvan Preston. Donovan recently mentioned that his whole initial interest in working on eventlet was digging deeply into Python coroutines, implementing an eventloop for them, and exploring lots of edge cases.

At the TSF dinner at PyCon 2012, Donovan and Glyph talked about this, and Donvoan's interest in bringing the lessons learned from eventlet back into Twisted. These lessons, though, take the form of the Actor model (in concurrent programming literature, research, and implementations) and the related Address (receiver, mailbox) model.

In other words, asynchronous message passing.

This blueprint tracks the work items that take Donovan's exploratory code and turn it into a new feature for Twisted.

Blueprint information

Glyph Lefkowitz
Duncan McGreggor
Needs approval
Duncan McGreggor
Series goal:
Milestone target:
Started by
Duncan McGreggor

Related branches




Work Items

Work items:
get code from fzZzy: DONE
create a ticket for the new feature: DONE
create a branch for the new feature: DONE
get braindump from fzZzy: DONE
rename t.p.coroutines to TODO
hold IRC kickoff meeting for actor model work: DONE
create Launchpad blueprint for work: DONE
post summary of meeting to Twisted trac bug #5565: DONE
read up on actor model research: TODO
create unit tests for fzZzy's work so far: TODO
define the interfaces for this feature: TODO
explore implementing actors on top of t.i.task.Cooperator and with greenlet: TODO
plan for supporting multiple implementations: TODO
ensure that at least one implementation runs on pypy: TODO
once we have actors, all docstrings need to be examined and updated for presence/accuracy: TODO
once we have working actors, we need to think hard about how to write code that uses them: TODO
while writing code that uses actors, we need to create a thorough Twisted howto for that: TODO
we also need to have some good and fully functioning examples: TODO

This blueprint contains Public information 
Everyone can see this information.