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 reactive distributed applications using the powerful Akka Streams. You'll write 2000+ lines of Akka code yourself, with guidance, and you will become a rockstar.

This course is for Scala/Akka programmers who need to design large-scale reactive asynchronous systems.

You probably know Akka already:

  • 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 - power in your hands.

Read more

In this course, we will learn how to write reactive distributed applications using the powerful Akka Streams. You'll write 2000+ lines of Akka code yourself, with guidance, and you will become a rockstar.

This course is for Scala/Akka programmers who need to design large-scale reactive asynchronous systems.

You probably know Akka already:

  • 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 - power in your hands.

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 streaming and reactive systems

  • a more marketable resume

  • more enjoyable work - Akka is fun.

This course is for established programmers with experience with Scala and Akka at the level of the Rock the JVM courses. 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 Akka

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.

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

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • Learn advanced akka with asynchronous streams
  • Understand backpressure and the principles of reactive streams
  • Adopt a new mental model with materialization
  • Construct large-scale streams with the akka streams graph dsl
  • Control akka streams logic with graph stages
  • Internalize the best practices

Syllabus

Introduction
Welcome
How to Make the Best out of This Course
Scala Recap
Read more
Akka Recap
Akka Streams Primer
First Principles
Materializing Streams
Operator Fusion and Async Boundaries
Backpressure
Akka Streams Graphs
Intro to Graphs and the Graph DSL
Open Graphs and Graph Shapes
More Open Graphs and Graph Shapes
Graph Materialized Values
Bidirectional Flows
Graph Cycles
Akka Streams Techniques and Patterns
Integrating with Actors
Integrating with External Services
Advanced Backpressure
Fault Tolerance and Error Handling
Testing Akka Streams
Advanced Akka Streams
Dynamic Stream Handling
Substreams
Custom Graph Shapes
The Ultimate Power: Custom Operators with Graph Stages
Custom Operators, Part 2
Epilogue
You Rock!

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops advanced Akka concepts such as stream graphs, materialized values, and error handling, which are all in-demand skills in industry
Taught by Daniel Ciocîrlan, a renowned Akka expert and author of several books on the subject
Provides hands-on practice with exercises and assignments, allowing learners to apply their knowledge and improve their code
Covers advanced topics such as dynamic stream handling, substreams, and custom operators, which are essential for building large-scale reactive systems
Requires a strong foundation in Scala and Akka, making it suitable for experienced Scala/Akka developers looking to enhance their skills

Save this course

Save Akka Streams with Scala | Rock the JVM to your list so you can find it easily later:
Save

Reviews summary

Akka streams with scala

According to students, Akka Streams with Scala is a highly-rated course that covers all the essential concepts of Akka and provides practical examples of using it.
Provides practical examples of using Akka.
"The course... gives some practical examples of using (Akka streams)."
Covers all the important concepts of Akka Streams.
"The course describes the most important concepts of Akka streams"

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 Streams with Scala | Rock the JVM with these activities:
Review Scala programming fundamentals
Refreshing Scala fundamentals strengthens the foundation for understanding Akka Streams.
Browse courses on Scala
Show steps
  • Revisit basic Scala concepts such as data types, variables, and control flow.
  • Practice writing simple Scala programs to reinforce understanding.
  • Review Scala documentation or online resources for reference.
Mentor a junior Scala/Akka developer on Akka Streams
Mentoring others solidifies your knowledge by requiring you to explain concepts and provide guidance.
Show steps
  • Identify a junior developer who is interested in learning Akka Streams.
  • Set up regular mentoring sessions to provide guidance and support.
  • Review code, answer questions, and suggest resources.
  • Encourage the mentee to ask questions and actively participate in discussions.
Use the official Akka Streams documentation
Explore the official Akka Streams documentation to supplement course materials and gain a deeper understanding.
Show steps
  • Read the Akka Streams User Guide.
  • Follow the Akka Streams tutorial.
  • Check out the Akka Streams Cookbook for practical examples.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Write Code in the Akka Streams DSL
Practice writing code in the Akka Streams DSL to reinforce understanding of stream manipulation techniques.
Show steps
  • Create a stream of random integers.
  • Apply a filter to the stream to remove even numbers.
  • Map each integer to its square.
  • Reduce the stream to calculate the sum of the squares.
Attend a workshop on advanced Akka Streams techniques
Attending a workshop will provide structured learning and hands-on practice with Akka Streams.
Show steps
  • Identify and register for a workshop aligned with your learning goals.
  • Attend the workshop and actively participate in discussions and exercises.
  • Take notes and ask questions for clarification.
  • Apply what you learn in the workshop to your own projects.
Create a blog post or article on Akka Streams
Writing about Akka Streams consolidates understanding by requiring clear and concise explanations of concepts.
Show steps
  • Choose a specific aspect of Akka Streams to focus on.
  • Research and gather information from reliable sources.
  • Write a draft and organize your ideas logically.
  • Edit and refine your content for clarity and accuracy.
  • Publish and promote your blog post or article.
Build a small-scale application using Akka Streams
Practical application of Akka Streams in a project reinforces understanding and develops problem-solving skills.
Show steps
  • Define the scope and requirements of your project.
  • Design the architecture and choose appropriate Akka Streams components.
  • Implement the application, including stream processing and error handling.
  • Test and debug your application.
  • Deploy and monitor your application.
Contribute to the Akka Streams open-source project
Contributing to the Akka Streams open-source project provides hands-on experience and deepens understanding of its implementation.
Show steps
  • Identify an area of the project you're interested in contributing to.
  • Read the project documentation and familiarize yourself with its codebase.
  • Create a pull request with your proposed changes or contributions.
  • Work with the community to refine and merge your contributions.

Career center

Learners who complete Akka Streams with Scala | Rock the JVM will develop knowledge and skills that may be useful to these careers:
Software Engineer
Software Engineers with a solid understanding of Akka and Scala are highly sought after, as these skills are in high demand. This course will help you build a strong foundation in Akka Streams, which is a powerful tool for writing reactive distributed applications. With this knowledge, you'll be able to develop more efficient and scalable software solutions.
Data Engineer
Data Engineers who are proficient in Akka Streams can develop real-time data pipelines that can handle large volumes of data. This course will teach you how to use Akka Streams to build scalable and fault-tolerant data processing systems.
DevOps Engineer
DevOps Engineers who are familiar with Akka Streams can help to automate and streamline the software development process. This course will teach you how to use Akka Streams to build continuous integration and continuous delivery pipelines.
Cloud Architect
Cloud Architects who are proficient in Akka Streams can design and deploy scalable and reliable cloud-based applications. This course will teach you how to use Akka Streams to build distributed systems that can handle high volumes of traffic.
Enterprise Architect
Enterprise Architects who are proficient in Akka Streams can design and implement enterprise-wide software solutions. This course will teach you how to use Akka Streams to build systems that are scalable, reliable, and efficient.
System Architect
System Architects who are familiar with Akka Streams can design and implement complex software systems. This course will teach you how to use Akka Streams to build systems that are reliable, scalable, and efficient.
Solutions Architect
Solutions Architects who are proficient in Akka Streams can help clients to design and implement innovative software solutions. This course will teach you how to use Akka Streams to build solutions that meet the specific needs of your clients.
Technical Architect
Technical Architects who are familiar with Akka Streams can lead teams of engineers in the design and development of complex software systems. This course will teach you how to use Akka Streams to build systems that are scalable, reliable, and efficient.
Software Developer
Software Developers who are familiar with Akka Streams can develop high-performance applications. This course will teach you how to use Akka Streams to build scalable and efficient applications.
Software Tester
Software Testers who are familiar with Akka Streams can test the performance and reliability of software systems. This course will teach you how to use Akka Streams to build test cases that can identify and fix bugs.
Quality Assurance Engineer
Quality Assurance Engineers who are familiar with Akka Streams can help to ensure the quality of software systems. This course will teach you how to use Akka Streams to build test cases that can identify and fix bugs.
Data Scientist
Data Scientists who are familiar with Akka Streams can develop real-time data processing pipelines. This course will teach you how to use Akka Streams to build scalable and fault-tolerant data processing systems.
System Administrator
System Administrators who are familiar with Akka Streams can help to manage and maintain software systems. This course will teach you how to use Akka Streams to build tools that can automate system administration tasks.
Network Engineer
Network Engineers who are familiar with Akka Streams can help to design and implement high-performance networks. This course will teach you how to use Akka Streams to build network protocols that are scalable and efficient.
Project Manager
Project Managers who are familiar with Akka Streams can help to manage software development projects. This course will teach you how to use Akka Streams to build project plans that are scalable and efficient.

Reading list

We've selected seven 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 Streams with Scala | Rock the JVM.
Provides an introduction to Scala. recommended for beginners who want to learn Scala before taking this course.
Provides a detailed overview of reactive programming with Scala and Akka. It covers the core concepts of reactive programming, such as streams, operators, and backpressure, as well as more advanced topics such as Akka Streams DSL.
Provides a collection of recipes for solving common problems with Akka Streams. It great resource for anyone who wants to learn how to use Akka Streams to build real-world applications.
Provides a series of examples that show how to use Akka Streams to solve common problems. It great resource for anyone who wants to learn how to use Akka Streams to build real-world applications.
Provides a practical guide to using functional and reactive programming techniques to build robust and scalable domain models. It covers the core concepts of functional and reactive programming, such as immutability, pure functions, and stream processing, as well as more advanced topics such as Akka actors and Akka Streams.
Provides a comprehensive overview of reactive programming with RxJava. It covers the core concepts of reactive programming, such as streams, operators, and backpressure, as well as more advanced topics such as RxJava schedulers and RxJava concurrency.
Provides a comprehensive overview of reactive programming with C#. It covers the core concepts of reactive programming, such as streams, operators, and backpressure, as well as more advanced topics such as C# async/await and C# IObservable.

Share

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

Similar courses

Here are nine courses similar to Akka Streams with Scala | Rock the JVM.
Akka Classic Essentials with Scala
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
Functional Programming Principles in Scala (Scala 2...
Functional Programming Principles in Scala
Functional Program Design in Scala (Scala 2 version)
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