Is there any good implementation of actors concurrency model for .net/c#?
I have to optimize a c# routine and i think that actors model fits perfectly as a solution for my problem. Unfortunately i have experience only with scala implementation.
Carl Hewitt took the idea and created the actor model. Years later, these same ideas of message passing would influence Erlang to create an implementation of the actor model as well. Erlang is often quoted as the first & most successful implementation of the actor model.
DEFINITION. Actors is a model of concurrent computation for devel- oping parallel, distributed and mobile systems. Each actor is an autonomous object that operates concurrently and asynchronously, receiving and sending messages to other actors, creating new actors, and updating its own local state.
The actor model can be used as a framework for modeling, understanding, and reasoning about a wide range of concurrent systems. For example: Electronic mail (email) can be modeled as an actor system. Accounts are modeled as actors and email addresses as actor addresses.
Properties of the actors Actors are isolated from each other and they do not share memory. They have a state, but the only way to change it is by receiving a message. Every actor has its own mailbox, which is similar to a message queue. Messages are stored in actors' mailboxes until they are processed.
https://github.com/AsynkronIT/protoactor-dotnet
https://github.com/akkadotnet/akka.net
https://github.com/dotnet/orleans
One might also look at Project Orleans Microsofts approach on actors.(which was released last week)
This is the projects website: http://research.microsoft.com/en-us/projects/orleans/
Here is also a good talk from build 2014 as introduction
Using Orleans to Build Halo 4’s Distributed Cloud Services in Azure http://channel9.msdn.com/Events/Build/2014/3-641
Please note that the bits for download as posted today are CTP.
Introduction to Orleans: http://felixnotes.com/orleans-microsofts-take-on-the-actor-pattern-in-net/
And yes, it was also open sourced: https://github.com/dotnet/orleans
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With