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

Contribute

There are lots of ways to contribute to the project, and we appreciate our contributors.

You can contribute by reviewing and sending feedback on code checkins, suggesting and trying out new features as they are implemented, submit bugs and help us verify fixes as they are checked in, as well as submit code fixes or code contributions of your own. Note that all code submissions will be rigorously reviewed and tested by the Actor Fx Team, and only those that meet an extremely high bar for both quality and design/roadmap appropriateness will be merged into the source.

You will need to sign a Contributor License Agreement before submitting your pull request. To complete the Contributor License Agreement (CLA), you will need to submit a request via the form and then electronically sign the Contributor License Agreement when you receive the email containing the link to the document. This needs to only be done once for any Microsoft Open Technologies OSS project.

Last edited Aug 27, 2013 at 9:16 PM by MSOpenTech, version 13