ActorFx v0.50 – more stability, scalability, extensibility, Inter-Actor programmability and a new MapReduce demo for our cloud based Actor Runtime

By the ActorFx team:

Claudio Caldato, Principal Program Manager Lead, Microsoft Open Technologies, Inc.

Joe Hoag, Senior Software Engineer, Microsoft Open Technologies Hub

Brian Grunkemeyer, Senior Software Engineer, Microsoft Open Technologies Hub

 

The ActorFx team is happy to announce that the ActorFx v0.50 is available now, with several improvements since our v0.40 release in March. We also have a great new demo available, based on an algorithm employing MapReduce-like functionality.

ActorFx provides an open source, non-prescriptive, language-independent model of dynamic distributed objects for building highly available data structures and other logical entities via a standardized framework and infrastructure. ActorFx is based on the idea of the mathematical Actor Model for cloud computing. Have a look at the CodePlex site for more information.

This release contains some significant improvements:

· Stability: We fixed a few bugs to eliminate deadlocks and race conditions.

· Diagnostics: we added support for Event Tracing for Windows (ETW) and now ActorFx emits new ETW event types that can be used to diagnose issues at runtime.

· Scalability: we implemented port sharing and per-node assembly caching

· Inter-Actor Programmability: we added the ability for actors to create and delete other actors

· Extensibility: We did some refactoring and added a StatelessActorApp that will enable us to implement alternative persistence mechanisms based on Azure Tables, SQL Azure and others in the future

With the v0.50 release we also added a new demo: WordCount. WordCount demonstrates ActorFx’s ability to effect dataflow-type computations over dynamic topologies, employing a MapReduce-type algorithm to count the occurrences of all words in a selected set of textual documents.

WordCount launches three classes of actors: mapper actors, reducer actors, and an aggregation actor.  Each are populated with the necessary logic to perform their respective functions by sending an assembly containing actor methods to each.

The WordCount sample demonstrates many of the advantages of ActorFx:

· Actor behavior is assigned via the passing in of an assembly containing actor methods.

· File names and progress messages are passed from one tier to the next using actor-to-actor method calls.

· Status information is emitted and collected using ActorFx pub/sub mechanisms.

Details on how to run the WordCount application can be found in the CodePlex site.

We are already working on the v0.60 release and on some new demos that show how ActorFx can be used on a wide range of scenarios. As always, we welcome input from the community. For those of you who are using ActorFx in implementations, we’d like to hear more about how it’s useful to you and how it can be improved.

We are looking forward to your comments/suggestions, and stay tuned for more cool stuff coming in our next release!