For a customer I’m working on a highly concurrent distributed system. As the requirements evolve, we get more and more an idea about the high level of complexity that is involved in building such a system.
I could switch to a different language like Erlang, that is designed for such a task, but instead I decided to give Akka.NET a try…
From the site:
Akka.NET is a toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on .NET & Mono.
This community-driven port brings C# & F# developers the capabilities of the original Akka framework in Java/Scala.
Learn about Akka for the JVM here.
Akka offers a C# implementation of the Actor Model. The Actor Model provides a higher level of abstraction for writing concurrent and distributed systems. It alleviates the developer from having to deal with explicit locking and thread management, making it easier to write correct concurrent and parallel systems. Actors were defined in the 1973 paper by Carl Hewitt but have been popularized by the Erlang language, and used for example at Ericsson with great success to build highly concurrent and reliable telecom systems.
Similar projects exist like Microsoft Project Orleans.
To help you get started, the creators of Akka.NET, provided a free(!) bootcamp with 18 lessons. Go check it out at https://petabridge.com/bootcamp/.