Akka Essentials with Scala
Meet the Actor Model. Dive into a better way of thinking concurrent and distributed code.
Think concurrency differently.
If you're reading this, you've probably heard about Akka or the actor model. It's one of the most powerful abstractions of concurrent programming we've had, even though it's not new. No more creating threads, no more locking, double-locking, deadlocks and concurrency problems. With actors, you can write heavily concurrent and distributed systems quickly, without the usual headaches. As such, massively parallel and distributed backends all over the place are powered by Akka.
This course is for the Scala developer willing to tap into the actor model and a new way of thinking parallel and distributed code.
After this course, you'll be able to:
- write parallel code with actors instead of threads and locks
- manage actors in hierarchies
- adopt the "let it crash" philosophy with supervision
- configure Akka for anything
- test concurrent applications with actors
- parallelize and delegate tasks to actors
- use the best practices in working with the actor model
Plus some extra perks:
- You'll have access to the entire code I write on camera (all 2863 lines of it)
- You'll be invited to our private Slack room where I'll share latest updates, discounts, talks, conferences, and recruitment opportunities
- (soon) You'll have access to the takeaway slides
- (soon) You'll be able to download the videos for your offline view
Skills you'll get:
- Work with actors instead of threads
- understand the thread model limitations
- adopt a new mindset with actors as the fundamental resource
- learn how actors are closest to the original object-oriented ideal
- send and receive messages
- change actor behavior dynamically
- spawn child actors and actor hierarchies
- learn about system guardians
- log messages for easier debugging
- learn how to configure an Akka application in 5 different ways
- Test Akka applications
- use TestKit and assertions
- use TestProbes
- write timed assertions
- intercept actor logs to verify correct functionality
- Achieve fault-tolerance in parallel applications
- start and stop actors programmatically and via message passing
- manage actor lifecycle
- create supervisor strategies to recover from failure
- use the Backoff Supervisor pattern to access an external resource that failed
- Deeply understand and use the Akka infrastructure
- schedule messages and
- manage timeouts
- parallelize and distribute tasks to workers with Routers
- use custom dispatchers for underlying thread management
- use custom mailboxes to process messages on your own terms
- Learn advanced techniques
- stash messages for later use
- use finite state machines (FSM) as its own DSL for highly stateful actors
all with live runnable examples and practiced with exercises.
Course Overview
-
StartActors Intro (3:30)
-
StartActors, Messages, Behaviors - Part 1 (18:07)
-
StartActors, Messages, Behaviors - Part 2 (24:54)
-
StartActors, Messages, Behaviors - Exercises (21:29)
-
StartHow Actors Work (5:20)
-
StartChanging Actor Behavior - Part 1 (21:31)
-
StartChanging Actor Behavior - Part 2 (9:43)
-
StartChanging Actor Behavior - Exercises (34:03)
-
StartChild Actors (32:10)
-
StartChild Actors - Exercises (30:12)
-
StartActor Logging (11:43)
-
StartConfiguring Akka (25:22)
Get started now!
Your Instructor
I'm a software engineer and the founder of Rock the JVM. I started the Rock the JVM project out of love for Scala and the technologies it powers - they are all amazing tools and I want to share as much of my experience with them as I can.
As of February 2021, I've taught a variety of Computer Science topics to 34000+ students at various levels and I've held live trainings for some of the best companies in the industry, including Adobe and Apple. I've also taught university students who now work at Google and Facebook (among others), I've held Hour of Code for 7-year-olds and I've taught 18000 kids to code.
I have a Master's Degree in Computer Science and I wrote my Bachelor and Master theses on Quantum Computation. Before starting to learn programming, I won medals at international Physics competitions.