Building a scalable backend with Akka.NET
Have you ever wanted to build a backend system using Akka.NET? Are you curious about the real-world applications of the actor model? Do you love coding a lot more than watching slides? Then this hands-on workshop is just the thing for you! We will spend most of our time writing code and seeing things in practice.
If you are developing something that has the potential to explode in usage, you are going to need to be able to scale your backend when your business takes off. It does not matter if it is an IoT device, a smartphone app, an Alexa skill, or a video game. If Amdahl’s law teaches us anything, it is that to do so successfully, you are going to need high degrees of parallelization.
Akka.NET, and its implementation of the actor model, promise you just that: highly parallelizable code that scales beautifully as machines are added to the cluster. But there are more advantages than just scaling. Actor models can make your backend very robust, because of their self-healing nature. The code is also easy to reason about, and easy to test.
But the patterns for designing such a system are different from what you might be used to writing object-oriented code. And there are a few pitfalls that you might want to avoid altogether.
During this workshop, you will build your own backend for an IoT scenario. We will be dealing with the meter readings coming from an electricity meter. We will build an end-to-end system from data ingestion, over shaping data, cleaning data, storing it, generating alerts under certain conditions to finally displaying everything in a web portal. You will not need any prior knowledge about Akka.NET to attend this workshop. All the required concepts are handled during the course.
Everything you learn will be just as valuable in building other types of backend systems. The IoT scenario merely serves as an example to help us understand these key concepts.
Covered Topics
During this workshop, you will learn about:
- The Akka.NET actor model
- Using Akka.Remoting to send messages to your ActorSystem
- Designing an actor hierarchy without bottlenecks
- Data normalization techniques and what they can do for your codebase
- Using Akka.Persistence to recover state
- Designing for recovery:
- Using supervision
- Restarting the actor system
- Common Actor design patterns
- An introduction to Akka.Cluster
Target audience
To attend this workshop, you should be a developer with:
- Working knowledge of the C# programming language
- An understanding of basic threading concepts
- An understanding of LINQ
- A basic knowledge of how to use a SQL Server database from code
You will spend a lot of time coding during this workshop. I will present concepts for the whole class, which you will then apply in code on your own. This workshop will be very hands-on. If you prefer watching slide decks for most of the day, this workshop might not be for you.
Laptop setup
- Your .NET IDE of choice (Visual Studio or Rider)
- .NET 6 SDK
- A working SQL server instance (LocalDB will do just fine)
- A working internet connection
Doubting if this workshop is for you?
Hannes is a developer, a coach and a father of 3.
In .NET development, he has always had a passion for performance, databases, distributed systems and large scale applications. But most of all, he likes playing devil’s advocate in technical discussions by drawing the ‘it depends’ card.
As a coach, he is enthousiastic about knowledge sharing, personal growth and building careers. All this while keeping in mind that the pace needs to be sustainable.
In his free time, when he’s not building LEGO® castles with his kids, he likes to spend time building guitars, playing chess or poker, tasting whisky and doing all round geeky stuff.
You can occasionally find him on an afterparty stage at PubConf or with Dylan Beattie & the Linebreakers.