We may earn an affiliate commission when you visit our partners.
Course image
Daniel Ciocîrlan

In this course, we will learn how to write concurrent and resilient applications using Akka actors. You'll write 2000+ lines of Akka code yourself, with guidance, and you will become a rockstar.

Read more

In this course, we will learn how to write concurrent and resilient applications using Akka actors. You'll write 2000+ lines of Akka code yourself, with guidance, and you will become a rockstar.

This course is for Scala programmers who need to design complex and scalable concurrent applications.

Why Akka:

  • it speeds up the development of concurrent applications by as much as 10x

  • its demand has exploded

  • it's a highly marketable skill

  • it's incredibly fun - once tasted Akka, you'll never want to get back to threads

I like to get to the point and get things done. This course

  1. deconstructs all concepts into the critical pieces you need

  2. selects the most important ideas and separates them into what's simple but critical and what's powerful

  3. sequences ideas in a way that "clicks" and makes sense throughout the process of learning

  4. applies everything in live code

The end benefits are still much greater:

  • a completely new mental model around parallel applications

  • significantly more marketable resume

  • more enjoyable work - Akka is fun.

This course is for established programmers with experience with Scala and with functional programming at the level of the Rock the JVM Scala beginners course. I already assume a solid understanding of general programming fundamentals.

This course is NOT for you if

  • you've never written Scala code before

  • you've never worked with threads

The course is comprehensive, but you'll always see me get straight to the point. So make sure you have a good level of focus and commitment to become a badass programmer.

I believe both theory and practice are important. That's why you'll get lectures with code examples, real life code demos and assignments, plus additional resources, instructions, exercises and solutions. At the end of the course, you'll have written thousands of lines of Akka.

I've seen that my students are most successful - and my best students work at Google-class companies - when they're guided, but not being told what to do. I have exercises waiting for you, where I offer my (opinionated) guidance but otherwise freedom to experiment and improve upon your code.

Definitely not least, my students are most successful when they have fun along the way.

So join me in this course and let's rock the JVM.

Enroll now

What's inside

Learning objectives

  • Create concurrent applications with actors instead of threads and locks
  • Design fault-tolerant systems with supervision
  • Configure akka for various scenarios
  • Confidently test actor systems
  • Use akka patterns and best practices

Syllabus

Welcome
Welcome!
How to Make the Best out of This Course
Scala and Parallel Programming Recap
Read more
Scala Recap
Advanced Scala Recap
Scala Multithreading Recap
Difficulties with the Standard Thread Model
Akka Actors
The Akka Actor Model to the Rescue
Actors, Messages and Behaviors
Actors, Messages and Behaviors (part 2)
Actors, Messages and Behaviors - Exercises
How Actors Actually Work
Changing Actor Behavior
Changing Actor Behavior (part 2)
Changing Actor Behavior - Exercises
Child Actors
Child Actors - Exercises
Actor Logging
Intro to Akka Configuration
Testing Akka Actors
Intro to TestKit
TestProbes
Timed Assertions
Intercepting Logs
Synchronous Testing
Fault Tolerance
Starting, Stopping and Watching Actors
Actor Lifecycle
Supervision
(optional) The Backoff Supervisor Pattern
Akka Infrastructure
Schedulers and Timers
Routers
Dispatchers
Mailboxes
Akka Patterns
Stashing Messages
The Ask Pattern
(optional) Finite State Machines
(optional) Finite State Machines (part 2)
You Rock!

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops software engineering best practices for handling parallel and concurrent programming principles and methodologies
Teaches the Akka framework, which is popular in the Scala community
Examines actor modeling, which separates state from behavior to improve maintainability
Taught by Daniel Ciocîrlan, who has industry experience in Akka programming
Advises students to have a good understanding of Scala syntax and functional programming concepts, which can be barriers to entry

Save this course

Save Akka Classic Essentials with Scala to your list so you can find it easily later:
Save

Reviews summary

Informative akka course

Learners say that Akka Classic Essentials with Scala is a highly informative course that provides a very good explanation of the material along with lots of examples.
This course provides lots of examples.
"Very good explanation of the material with lots of examples."
The material is explained very well.
"Very good explanation of the material with lots of examples."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Akka Classic Essentials with Scala with these activities:
Review Scala basics
Strengthen your understanding of Scala fundamentals to enhance your comprehension of Akka concepts.
Browse courses on Scala
Show steps
  • Review the Scala beginner course
  • Practice writing basic Scala code
Write Code for Actors
Practice the concepts of Akka Actors by writing and running code to get comfortable writing concurrent code.
Show steps
  • Understand the Akka Actor Model
  • Set up an Akka project
  • Implement basic actors
  • Test your code
Participate in Akka study group
Engage with fellow learners to discuss Akka concepts and share knowledge.
Browse courses on Akka
Show steps
  • Find or create a study group focused on Akka
  • Regularly meet to discuss course material and work on projects together
  • Provide feedback and support to other group members
Seven other activities
Expand to see all activities and additional details
Show all ten activities
Akka Tutorial for Beginners
Supplement the course with additional guidance with this tutorial designed to help beginners understand Akka.
Browse courses on Akka
Show steps
  • Review the tutorial
  • Follow along with the code examples
  • Experiment with the concepts
Follow Akka tutorials
Complement the course material with guided tutorials to reinforce your understanding of Akka.
Browse courses on Akka
Show steps
  • Explore the official Akka documentation
  • Follow online courses or video tutorials on Akka
Practice writing Akka code
Solidify your understanding of Akka by practicing writing and testing Akka code.
Browse courses on Akka
Show steps
  • Create small code snippets that implement Akka patterns
  • Write unit tests for your code
Create Akka cheat sheet
Summarize key Akka concepts and patterns in a cheat sheet for quick reference.
Browse courses on Akka
Show steps
  • Identify essential Akka concepts
  • Create a document that outlines these concepts
Connect with Akka experts
Enhance your learning by seeking guidance from experienced Akka practitioners.
Browse courses on Akka
Show steps
  • Join online communities or forums related to Akka
  • Attend meetups or conferences where Akka experts present
  • Reach out to individuals in your network who have experience with Akka
Build a simple Akka application
Apply your Akka knowledge by building a basic application that utilizes actors and messages.
Browse courses on Akka
Show steps
  • Design a simple application use case
  • Create an Akka project
  • Implement actors and message handling
  • Test your application
Develop an Akka architecture diagram
Visualize and document an Akka system architecture to enhance your understanding of its components and interactions.
Browse courses on Akka
Show steps
  • Identify the key components of an Akka system
  • Create a diagram that represents the relationships and interactions between these components
  • Annotate the diagram with explanations and descriptions

Career center

Learners who complete Akka Classic Essentials with Scala will develop knowledge and skills that may be useful to these careers:
Software Engineer
As a Software Engineer, you will design, develop, and maintain software systems. This course will help you build a foundation in Akka, which is an essential tool for writing concurrent and resilient applications. Akka is used by many companies, including Google, Twitter, and LinkedIn. By taking this course, you will gain the skills and knowledge necessary to become a successful Software Engineer.
Data Engineer
As a Data Engineer, you will design, build, and maintain data pipelines. This course will help you build a foundation in Akka, which is an essential tool for writing concurrent and resilient data pipelines. Akka is used by many companies, including Google, Twitter, and LinkedIn. By taking this course, you will gain the skills and knowledge necessary to become a successful Data Engineer.
DevOps Engineer
As a DevOps Engineer, you will work with software developers and operations teams to build and maintain software systems. This course will help you build a foundation in Akka, which is an essential tool for writing concurrent and resilient software systems. Akka is used by many companies, including Google, Twitter, and LinkedIn. By taking this course, you will gain the skills and knowledge necessary to become a successful DevOps Engineer.
Systems Engineer
As a Systems Engineer, you will design, build, and maintain computer systems. This course will help you build a foundation in Akka, which is an essential tool for writing concurrent and resilient computer systems. Akka is used by many companies, including Google, Twitter, and LinkedIn. By taking this course, you will gain the skills and knowledge necessary to become a successful Systems Engineer.
Cloud Engineer
As a Cloud Engineer, you will design, build, and maintain cloud-based systems. This course will help you build a foundation in Akka, which is an essential tool for writing concurrent and resilient cloud-based systems. Akka is used by many companies, including Google, Twitter, and LinkedIn. By taking this course, you will gain the skills and knowledge necessary to become a successful Cloud Engineer.
Network Engineer
As a Network Engineer, you will design, build, and maintain computer networks. This course will help you build a foundation in Akka, which is an essential tool for writing concurrent and resilient computer networks. Akka is used by many companies, including Google, Twitter, and LinkedIn. By taking this course, you will gain the skills and knowledge necessary to become a successful Network Engineer.
Security Engineer
As a Security Engineer, you will design, build, and maintain computer security systems. This course will help you build a foundation in Akka, which is an essential tool for writing concurrent and resilient computer security systems. Akka is used by many companies, including Google, Twitter, and LinkedIn. By taking this course, you will gain the skills and knowledge necessary to become a successful Security Engineer.
Game Developer
As a Game Developer, you will design, build, and maintain video games. This course will help you build a foundation in Akka, which is an essential tool for writing concurrent and resilient video games. Akka is used by many companies, including Unity and Epic Games. By taking this course, you will gain the skills and knowledge necessary to become a successful Game Developer.
Mobile Developer
As a Mobile Developer, you will design, build, and maintain mobile applications. This course will help you build a foundation in Akka, which is an essential tool for writing concurrent and resilient mobile applications. Akka is used by many companies, including Google, Apple, and Microsoft. By taking this course, you will gain the skills and knowledge necessary to become a successful Mobile Developer.
Web Developer
As a Web Developer, you will design, build, and maintain websites. This course will help you build a foundation in Akka, which is an essential tool for writing concurrent and resilient websites. Akka is used by many companies, including Google, Amazon, and Microsoft. By taking this course, you will gain the skills and knowledge necessary to become a successful Web Developer.
Data Scientist
As a Data Scientist, you will use data to solve business problems. This course will help you build a foundation in Akka, which is an essential tool for writing concurrent and resilient data science pipelines. Akka is used by many companies, including Google, Amazon, and Microsoft. By taking this course, you will gain the skills and knowledge necessary to become a successful Data Scientist.
Machine Learning Engineer
As a Machine Learning Engineer, you will design, build, and maintain machine learning models. This course will help you build a foundation in Akka, which is an essential tool for writing concurrent and resilient machine learning pipelines. Akka is used by many companies, including Google, Amazon, and Microsoft. By taking this course, you will gain the skills and knowledge necessary to become a successful Machine Learning Engineer.
Business Analyst
As a Business Analyst, you will help businesses understand their data and make better decisions. This course will help you build a foundation in Akka, which is an essential tool for writing concurrent and resilient data analysis pipelines. Akka is used by many companies, including Google, Amazon, and Microsoft. By taking this course, you will gain the skills and knowledge necessary to become a successful Business Analyst.
Project Manager
As a Project Manager, you will plan, execute, and deliver projects. This course will help you build a foundation in Akka, which is an essential tool for writing concurrent and resilient project management pipelines. Akka is used by many companies, including Google, Amazon, and Microsoft. By taking this course, you will gain the skills and knowledge necessary to become a successful Project Manager.
Product Manager
As a Product Manager, you will work with engineers and designers to build and launch new products. This course will help you build a foundation in Akka, which is an essential tool for writing concurrent and resilient product pipelines. Akka is used by many companies, including Google, Amazon, and Microsoft. By taking this course, you will gain the skills and knowledge necessary to become a successful Product Manager.

Reading list

We've selected eight books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Akka Classic Essentials with Scala.
Provides a collection of best practices for writing effective Java code. It covers topics such as object-oriented design, concurrency, and performance.
Provides a practical introduction to actor-based programming using the Akka framework. It covers topics such as actor creation, message passing, and fault tolerance.
Provides a comprehensive overview of the fundamental concepts and algorithms used in concurrent and distributed programming. It covers topics such as process synchronization, mutual exclusion, deadlock detection, and distributed consensus.
Provides a comprehensive overview of the Scala programming language. It covers topics such as object-oriented programming, functional programming, and concurrency.
Provides a practical introduction to reactive programming using the Akka framework. It covers topics such as streams, actors, and fault tolerance.
Provides a comprehensive overview of concurrency in Scala. It covers topics such as threads, locks, and futures.
Provides a practical guide to writing concurrent code in Scala. It covers topics such as threads, locks, and futures.
Provides a practical guide to writing concurrent code in any programming language. It covers topics such as thread safety, deadlock avoidance, and performance optimization.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Akka Classic Essentials with Scala.
Akka Streams with Scala | Rock the JVM
Most relevant
Scala & Functional Programming Essentials | Rock the JVM
Most relevant
Advanced Scala and Functional Programming | Rock the JVM
Most relevant
Programming Reactive Systems (Scala 2 version)
Most relevant
Programming Reactive Systems
Most relevant
Spark 3.0 & Big Data Essentials with Scala | Rock the JVM
Most relevant
Scala 2: The Big Picture
Most relevant
Functional Programming Principles in Scala (Scala 2...
Apache Spark with Scala - Hands On with Big Data!
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser