Akka.NET and The Actor Model

I’ve been keeping my eye on Scala, Akka, and the Actor Model since I listened to a podcast on Software Engineering Radio with Jonas Boner a few years ago:Episode 178: Akka With Jonas Boner. I’ve read Jamie Allen’s Effective Akka book as well as taken a couple of courses on Coursera involving functional programming and reactive programming: Functional Programming Principles in Scala and Principles of Reactive Programming.

I’m really excited about the release of Akka.NET 1.0 as I’ve been working in C# as my day job for the past 7+ years and this will give me a chance to integrate it into some production code soon!

I remember finding this conversation with Carl Hewitt, the inventor of the Actor Model, online at MSDN Channel 9 after the podcast and suggest this as something people might want to take a look at to find out more on the Actor Model.

Hewitt, Meijer and Szyperski: The Actor Model (everything you wanted to know, but were afraid to ask)

The Actor Model was created back in 1973 and it is not a new concept. It is, however, fairly new to the world of Java and C# where a lot of us have been the past decade. Basically an actor is defined as a ‘unit of computation’. Data is not shared between actors and all interactions is done through message-passing. If you’ve ever done any threading and concurrency programming I think you’ll appreciate the model.

An Actor can do several basic things:
1. Receive a message
2. Send a message to another Actor
3. Create new Actors
4. Change state

Petabridge.com has a really nice series of tutorials for Akka.NET named Akka Bootcamp. They will send you an email lesson a day for a few weeks or you can go to the web site and pick and choose which ones to work on. I prefer the email task per day as it keeps me going and on track. I’m a little over halfway through them currently and think it’s a great way to get started.

Akka.NET Bootcamp

I’ll write more on this later as I get farther down the road.
I’m planning on contributing some code samples on github if all goes well.