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.
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.
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 for specifics on any new features or breaking changes of which you should be aware.