Motivation behind The Actor Framework for Windows Azure from MS Open Tech

This product is actively developed by the ActorFx team assigned to the Microsoft Open Technologies Hub and in collaboration with a community of open source developers. MS Open Tech is a subsidiary of Microsoft Corp.

The goal for ActorFx is to provide a non-prescriptive, language-independent model of dynamic distributed objects. This will in turn provide a framework and infrastructure atop which highly available data structures and other logical entities can be implemented.

ActorFx is based on the idea of the Actor Model developed by Carl Hewitt that Erik Meijer put in the context of managing data on the cloud; his paper on the topic is the base for the ActorFx project. You can also see them discussing the Actor model in this Channel9 video.

High-level Architecture

At a high level, an actor is simply a service. That service maintains some durable state, and that state is accessible to actor logic via an IActorState interface, which is essentially a key-value store.

image

 

There are a couple of unique advantages to this simple design:

  • Anything can be stored as a value, including delegates. This allows us to blur the distinction between state and behavior – behavior is state. That means that actor behavior can be easily tweaked “on-the-fly” without recycling the service representing the actor. Deploying new versions of actor methods should be extremely cheap, to ease maintenance and support extensibility at runtime.
  • By abstracting the interface to the durable store, ActorFx makes it possible to “mix and match” back ends while keeping the actor logic the same.

You can find more details in the ActorFx Basics page.

Please make sure you take a look at Release page. This is a very early release (V0.1) so there are some known issues you need to be aware of.

Last edited Dec 11, 2012 at 7:21 PM by claudioc, version 11