Akka Streams with Scala
The power of Reactive Streams in your hands. Learn to implement reactive data-rich systems at any scale, and write in 10 lines what other people write in 3000.
Plug and play.
If you're reading this, I probably don't need to talk to you about the reactive manifesto or the Reactive Streams initiative. The terms are fancy but they lay down powerful principles, which have been proven and sent to production in many many many places. The idea is simple: water tap, pipes, sink, plug all and go. Except we call those data sources, transformers and data sinks.
This course is for Scala & Akka developer who wants to write scalable asynchronous data pipelines quickly. The interwebz use some fancy terms for this skill, such as "fast data" or "reactive", but I'll put it this way:
You'll learn to write fault-tolerant async data pipelines at scale, in as many lines as it takes Java to write "hello world".
After this course, you'll be able to:
- use the principles of the reactive manifesto in your applications
- read, transmit and process data with high performance, at scale, with streaming components
- describe massive streams of any shape and size with the Graph DSL, without needing to care about concurrency
- use backpressure to control the flow of data through your system
- use streams materialization, a difficult concept understood only by the very best
(half-joke: one of my students posted that the Akka Streams API was invented by the Lightbend folks just for themselves)
- use graph cycles in your streams to your advantage
- create your own streaming components with as much control as you like
- integrate Akka Streams with normal actors
- avoid concurrency pitfalls
- circumvent cyclical streaming deadlocks
- maintain data integrity in the face of disproportional demand or supply
Plus some extra perks:
- You'll have access to the entire code I write on camera (all 2100 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:
- Reactive Streams and Akka Streams principles
- understand what "reactive" means
- use streaming components
- understand and use stream materialization
- control the data flow in your streams with backpressure
- test Akka streams
- The Akka Streams Graph DSL
- describe streaming architectures of any shapes and size
- create composite components and use them atomically in other graphs
- obtain materialized values from any streaminng graph
- use and control graph cycles
- Akka Streams best practices
- integrate streams with Akka actors
- integrate streams with (general) external services
- reliably test Akka streams with the Akka Streams TestKit
- achieve fault-tolerance in your streams
- Advanced techniques with Akka Streams used by the very best
- split data into parallelizable substreams
- manage Akka streams at runtime
- use the powerful GraphStage API to create your own components
all with live runnable examples and practiced with exercises.
Get started now!
I'm a software engineer and the lead instructor for 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.
For the last 7 years, I've taught a variety of Computer Science topics to 27000+ 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 6000 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.