Practical Reactive Streams with Akka and Java
Learn how to build asynchronous, non-blocking reactive streams with back-pressure - a really practical hands-on course
What you will learn?
- What are reactive streams and when should you use them
- How to build asynchronous, non-blocking, reative streams with back-pressure
- The Akka Streams API and GraphDSL
- How to correctly implement asynchronous boundaries and parallelism
- How to integrate Akka Actors into reactive streams
Your trainer
Matt Greencroft
Having worked for over 20 years as a professional programmer, mainly in banking, Matt now teaches for Virtual Pair Programmers. His specialist areas are JavaEE, Android, Hadoop and NoSQL. Matt's currently working on a Clojure project, which he finds an enjoyable challenge!
Outside of work, Matt enjoys cycling, but prefers going downhill to uphill, and he also plays the piano… very badly.
65 lessons
Easy to follow lectures and videos covering subject details.
8.5 hours
This course includes hours of video material. Watch on-demand, anytime, anywhere.
Certificate of Completion
You will earn a Certificate of Completion at the end of this course.
Course curriculum
- What are reactive streams?11:39
- Course files00:04
- How to get support for this course01:51
- A note about external sources01:29
- Using the Akka libraries08:11
- Creating a source04:52
- Creating a sink03:55
- Creating a flow04:20
- Building and running a graph07:12
- Finite Sources06:03
- Infinite Sources07:42
- Basic source operators04:05
- Creating sinks03:00
- Graph convenience methods05:43
- Map and Filter06:56
- MapConcat04:12
- Grouped02:08
- Flows of generic data types10:41
- Combining flows with sinks and sources09:20
- Exercise02:42
- Walkthrough10:17
- What are materialized values?08:46
- The fold method and selecting a materialized value for the graph10:19
- Terminating the actor system03:32
- The reduce method03:56
- Re-using graph objects02:31
- Converting infinite streams to finite streams with take and limit04:38
- The takeWhile and takeWithin functions05:00
- Logging elements in a stream09:58
- Asynchronous boundaries10:25
- Introducing back-pressure05:40
- Adding buffers to the graph06:28
- Other overflow strategies03:42
- Parallelism09:42
- Instructions to create an optimised graph with a materalised value12:03
- Walkthrough15:40
- Why do we need the GraphDSL?03:45
- Introducing the GraphDSL Syntax05:12
- Constructing a simple Graph using the GraphDSL14:20
- Understanding the Graph Construction and introducing Asynchronous Boundaries11:30
- Introducing fan-in and fan-out shapes03:42
- Broadcast and merge18:38
- Using Balance for parallelilsm14:48
- Exercise 3 - implementing parallelism in GraphDSL05:15
- Uniform fan-in and fan-out shapes12:40
- Non uniform fan-in and fan-out shapes17:51
- Combining sources with a fan-in shape18:20
- Sending to an interim sink with alsoTo05:26
- Diverting outliers to a different sink with divertTo10:50
- Creating and combining open shapes15:20
- Using open shapes outside the graphDSL02:32
- Adding an actor to our project05:37
- Using actors as flows08:38
- Using actors as sinks07:50
- Conflate14:00
- Extrapolate and expand05:58
- Java's reactive streams interfaces17:07
- Introducing the case study19:04
- Exercise 4 - receive transactions with backpressure05:20
- Walkthrough05:06
- Exercise 5 - mine using actors and apply the result02:40
- Walkthrough08:05
- Creating a circular graph18:13
- A simple introduction to blockchains08:36
- Bonus lecture00:12
Online Courses
Learning Akka doesn't have to be hard. Here is our curated list of recommended online courses that will guide you step-by-step in the learning process.
Learn moreBooks
Are you an avid book reader? Do you prefer paperback, or maybe Kindle version? Take a look at our curated list of Akka related books and take your
YouTube videos
The number of high-quality and free Akka video tutorials is growing fast. Check this curated list of recommended videos - there is no excuse to stop learning.
Learn more