Practical Reactive Streams with Akka

Try for free!

Subscribe and stream all our courses
from just $19.00 per month
Start my free trial

Practical Reactive Streams with Akka

Implement asynchronous, non-blocking reactive streams with backpressure

contains 8.5 hours of video - equivalent to 2 days of live training.

  • This course will show you how to use Akka to build asynchronous, non-blocking reactive streams with back-pressure.
  • Using practical examples we'll cover both the simple API and the GraphDSL.
  • Learn how to correctly implement asynchronous boundaries, parallelism, integration with Akka Actors, and more.
This is a follow-on course to the Practical Concurrency with Akka course. You should have completed that course and be comfortable creating actors using the Akka Typed API before starting this course.


Having problems? check the errata


What are reactive streams? 11m 39s Preview

Creating our first stream

A note about external sources 1m 29s Watch
Using the Akka libraries 8m 11s Watch
Creating a source 4m 52s Watch
Creating a sink 3m 55s Watch
Creating a flow 4m 20s Watch
Building and running a graph 7m 12s Watch

Simple Sources and Sinks

Finite Sources 6m 3s Watch
Infinite Sources 7m 42s Watch
Basic source operators 4m 5s Watch
Creating sinks 2m 59s Watch
Graph convenience methods 5m 43s Watch

Simple Flows

Map and Filter 6m 56s Watch
MapConcat 4m 12s Watch
Grouped 2m 8s Watch
Flows of generic data types 10m 41s Watch
Combining flows with sinks and sources 9m 20s Watch

Exercise 1 - Big Primes

Exercise 2m 42s Watch
Walkthrough 10m 17s Watch

Materialized values

What are materialized values? 8m 46s Watch
The fold method and selecting a materialized value for the graph 10m 19s Watch
Terminating the actor system 3m 32s Watch
The reduce method 3m 56s Watch

Stream lifecycles

Re-using graph objects 2m 31s Watch
Converting infinite streams to finite streams with take and limit 4m 38s Watch
The takeWhile and takeWithin functions 5m 0s Watch


Logging elements in a stream 9m 58s Watch

Back pressure and graph performance

Asynchronous boundaries 10m 25s Watch
Introducing back-pressure 5m 40s Watch
Adding buffers to the graph 6m 28s Watch
Other overflow strategies 3m 42s Watch
Parallelism 9m 41s Watch

Exercise 2

Instructions to create an optimised graph with a materalised value 12m 3s Watch

The GraphDSL

Why do we need the GraphDSL? 3m 45s Watch
Introducing the GraphDSL Syntax 5m 12s Watch
Constructing a simple Graph using the GraphDSL 14m 20s Watch
Understanding the Graph Construction and introducing Asynchronous Boundaries 11m 30s Watch

Complex flow types

Introducing fan-in and fan-out shapes 3m 42s Watch
Broadcast and merge 18m 38s Watch
Using Balance for parallelilsm 14m 48s Watch
Exercise 3 - implementing parallelism in GraphDSL 5m 15s Watch
Uniform fan-in and fan-out shapes 12m 40s Watch
Non uniform fan-in and fan-out shapes 17m 51s Watch

Graphs with multiple sources and sinks

Combining sources with a fan-in shape 18m 20s Watch
Sending to an interim sink with alsoTo 5m 26s Watch
Diverting outliers to a different sink with divertTo 10m 50s Watch

Non-runnable or partial graphs

Creating and combining open shapes 15m 20s Watch
Using open shapes outside the graphDSL 2m 32s Watch

Using actors in graphs

Adding an actor to our project 5m 37s Watch
Using actors as flows 8m 38s Watch
Using actors as sinks 7m 50s Watch

Advanced backpressure

Conflate 14m 0s Watch
Extrapolate and expand 5m 58s Watch

The java flow package

Java's reactive streams interfaces 17m 7s Watch

Case Study - Blockchain mining

Introducing the case study 19m 4s Watch
Exercise 4 - receive transactions with backpressure 5m 20s Watch
Walkthrough 5m 6s Watch
Exercise 5 - mine using actors and apply the result 2m 40s Watch
Walkthrough 8m 5s Watch
Creating a circular graph 18m 13s Watch


A simple introduction to blockchains 8m 36s Watch
Copyright ©2024