In this post I'm going to lay the ground work for some work I have coming on distributed systems and some of the really cool things I've been doing for the last while with different actor model systems, I've been playing and trying a few of them.

Part of my journy I've been trying to decide which Actor Model to use or which system so I've been taking a look at a few.

What is an Actor Model

Actor model in Computer Science and engineering is a concurrent computation system that responds to messages and preforms actions that are not dependant on each other. So basically if one has an error the rest don't crash.

Think of it like everything in isolation no one knows what the other is doing. An actor gets a message and performs it's task and creates a message and waits for another message.

Actor Models in .NET

.Net has actor models, below I have a break down of some of the Actor models available in .NET at the moment.

Akka.NET

From Petabridge, this was my first really introduction to actor models and using them, they have a really great bootcamp and some great training to get up to speed really quick.

Proto.Actor

Proto actor is an Actor model system for .NET, GoLang, Java and Kotlin. I came across this post on using Proto.Actor

Orleans

Orleans is a system from Microsoft research. There is a post here on Getting Started with Microsoft Orleans

Azure Service Fabric

I am not 100 % sure if Service fabric is an actor model but it seems to come up when I was doing some digging into actor models. So I'll add it to this list I can remove it if I feel like it.

So what next, well I've kind of decided to explore in much more detail Akka.NET and Proto.Actor I think either will do what I want and I think they could be alot of fun.