Akka.NET Bootcamp

Original author: Aaron Stannard
  • Transfer
  • Tutorial

Welcome to Akka.NET Bootcamp. This is a free self-study course prepared by the guys from Petabridge .

The training course is divided into three parts, during which you will learn how to create fully functional, real programs using Akka.NET actors and many other parts from the Akka.NET framework.

We will start with some key actors and gradually come to larger and more complex examples.

This course is for self-study - you can perform it at any pace at your discretion. You can subscribe here and every day receive one Akka.NET lesson to your email (in English - from transl.) If you want.

NOTE: Currently, the training course is designed to use C # as a programming language.
We intend to add support for F # in the future
(We also accept F # pull requests)

What do you learn

In the Akka.NET training course, you will learn how to use Akka.NET actors to create reactive, parallel systems. You will learn how to create applications that may have seemed impossible or very very difficult before learning Akka.NET. After the training course, you will feel more confident in solving complex and large problems than before.

Part 1

In the first part, you will learn the basics of how the actor model and Akka.NET work.

On * NIX systems there is a tail utility, built-in monitoring of changes to a file that Windows does not have. We will recreate tail for Windows and learn the fundamental things in the process.

In the first part we learn:
  1. How to create your own ActorSystem and actors.
  2. How to send actor messages and how to handle different types of messages.
  3. How to use Props and ActorRef in building loosely coupled systems
  4. How to use actor paths, their addresses, and ActorSelection to send messages to actors
  5. How to create child actors and a hierarchy of actors, and how to control children using SupervisionStrategy
  6. How to use an actor's life cycle to control the behavior of starting, shutting down, and restarting an actor

Part 2

In the second part, we will come closer to the features of Akka.NET for building more complex applications than we did in the first part.

In the second part we will learn:

  1. How to use HOCON settings to configure your actors through App.config and Web.config
  2. How to configure the Dispathcer of your actors to run them in a UI thread so that actors can perform operations directly on UI elements without having to switch context
  3. How to handle more complex message types using pattern matching and ReceiveActor
  4. How to use Scheduler to send recurring messages to actors
  5. How to use the pattern sender-subscriber (Publish-subscribe (pub-sub ) pattern) between actors
  6. How and why to switch actor behavior in runtime
  7. How to use Stash to save messages for later processing

Part 3

In the third part, we will learn how to use actors for parallelism and scaling using Octokit and data from Github!

In the third part we will learn:

  1. How to do work asynchronously inside your actors using PipeTo
  2. How to use Ask inside an actor to wait for a response to your messages
  3. How to use ReceiveTimeout for responses from other actors
  4. How to use Group routers to share work between your actors
  5. How to use Pool routers to automatically create and manage pools of actors
  6. How to use HOCON to configure your routers

Where to begin

This is how Akka.NET Bootcamp works.

Use Github to make life easier.

This Github repository contains Visual Studio solutions and other elements you need to complete the tutorial.

Thus, if you want to continue the training course, we recommend that you do the following:

  1. Sign up on Github if you haven’t done so already.
  2. Fork this repository and clone your fork to the local machine.
  3. While you are doing the lessons, leave the web browser tab open on Akka.NET Bootcamp ReadMes , so you can read all the instructions clearly and easily.

Bootcamp structure

Akka.NET Bootcamp consists of 3 modules:

  • Part 1 - entry level Akka.NET
  • Part 2 - Akka.NET Intermediate
  • Part 3 - Akka.NET Advanced Level

Each module contains the following structure (using Part 1 as an example :)

src\Unit1\README.MD - table of contents and instructions for the module
src\Unit1\DoThis\ - contains the .SLN and project files that you will use through all lessons
-- lesson 1
src\Unit1\Lesson1\README.MD - README explaining lesson1
src\Unit1\Lesson1\DoThis\ - C# classes, images, text files, and other junk you'll need to complete lesson1
src\Unit1\Lesson1\Completed\ - Got stuck on lesson1? This folder shows the "expected" output for the lesson
-- repeat for all lessons

Start with the first lesson in each part and follow the instructions described in README (or here on the hub :) - from translations) .

Lesson structure

Each Akka.NET Bootcamp tutorial contains a description that explains the following:

  • Akka.NET concepts and tools that you will use in the lesson, with links to any relevant documentation or example.
  • Step-by-step instructions on how to change a .NET project inside Unit- [Num] / DoThis / in accordance with the expected result at the end of each lesson.
  • If you are stuck following step-by-step instructions, in each lesson there is a folder / Completed / that shows the complete finished source code. You can compare your implementation with this and understand what you need to change.

When do you complete the lessons ...

A few things to keep in mind when you follow the step-by-step instructions:

  • Do not just copy the code presented in the lesson. You will remember and learn all of the built-in functions of Akka.NET if you print your own code. Kinesthetic learning FTW!
  • You may need to fill in some gaps while studying individual lessons. To help you learn, Akka.NET includes some exercises for you. - If you feel lost, always check the contents of the / Completed folder for this lesson.
  • Do not be afraid to ask questions. You can contact Petabridge and Akka.NET teams in our Gitter chat


We will explain all key concepts throughout each lesson, but of course you should bookmark (and feel free to use them!) Using the Akka.NET documentation

Tools / Prerequisites

This course expects you to:

  1. Some programming experience and familiar with C #
  2. Github account and basic git knowledge
  3. You are using Visual Studio ( it is now free! )

About Petabridge

Petabridge is a company created specifically to make life for .NET developers easier for building distributed applications.

Petabridge also offers Akka.NET counseling and training .

Also popular now: