Training course on Akka.NET with Aaron Stannard
I recently attended a in-house Danske Bank training course on Actors using Akka.NET.
The course was taught by Aaron Stannard, CEO of Petabridge. Aaron is one of the founding partners of the open source toolkit Akka.NET and therefore he is very knowledgeable about Akka.NET. Just very recently Aaron was on .NET Rocks talking about the latest around Akka.NET.
In case you haven't heard about Akka.NET then it is a port of the Akka toolkit for the JVM platform. Akka is heavily inspired by Erlang. In recent time Erlang is perhaps most famous for powering the messaging app WhatsApp. Earlier on Erlang was know as the programming language used by Erichson to achieve an impressive high availability of 99.9999999% ("nine nines") uptimes.
Akka.NET is a toolkit that can be used to build reactive, concurrent, and distributed applications more easily. In some sense it is more object-oriented than traditional OO programming since the only was Actors (think of an Actor as a class) can communicate with each other is by sending messages.
My personal experience is that you are up for a steep learning curve when you start out with Akka.NET. Unlike other technologies (e.g. ASP.NET Core) there is not a lot of public available training material for Akka. The official documentation is fairly good but I would consider it more as a reference manual than actual training material.
If you are considering using Akka.NET for your next project I can definitely recommend Aaron as an instructor for one of their Petabridge courses. In Danske Bank we did a 3 days workshop covering more advanced topics like Actor design patterns, remoting, clustering, and streaming. Aaron did a great job of explaining the inner workings of Akka.NET and after the course he was also very kind to help out with questions and issues arising in the aftermath of the course.
This blog post is not meant as an introduction to Akka.NET. For that I would recommend:
The free bootcamp course from Petabridge
The book Reactive Applications with Akka.NET by Anthony Brown, Manning Publications
Pluralsight has several Akka related online training videos
and for more advanced topics:
The book Applied Akka Patterns by Michael Nash, Wade Waldron, O'Reilly Media
The book Reactive Messaging Patterns with the Actor Model by Vaughn Vernon (also known as author of the Blue Book on DDD), Addison-Wesley Professional
When I started out looking at Akka.NET I was hit by the fact that I could not find a lot of working examples of Akka cluster solutions. After the course I have been working on a sample and I want to share that with you. All source code is found on Github with full instruction on how to build and run the solution.
The solution covers topics like:
- Akka Cluster
- Seed nodes
- Supervisor strategy
- Split brain resolver
- Cluster node roles
- Petabridge.Cmd for command line cluster management
In the future I might extend it to also cover topics like
- Cluster Client
- Custom serialization
- Cluster singleton
Here is the cluster
One last thing. I do not consider that code to be production ready. The repository is meant for experimenting and playing with Akka - not for creating a production ready solution. As of publication date of this blog post
Feel free to contact me if you have any question. I will be more than happy to try to answer any questions.