Reactive Streams: Introduction to Reactive Streams

A session at Lambda Jam Chicago 2014

In this hands on lab, we’ll walk through the process of creating a video streaming server. One part of the process will be capturing video and pushing it into a server, while the other part will be creating a server that will take in a stream and reproduce it, live, for any web client which connects.

This tutorial will cover the nuts and bolts of wiring reactive data streams together, while handling inconsistent flow rates with backpressure and buffers. The entire application will be written in Java 8 using the Akka Streams and Akka Http libraries.

This session will cover the new reactive-streams API as it exists inside Akka. We’ll start off by installing the Activator “tutorial” tool to quickly bootstrap a working build.

From there, we’ll work on streaming video in a client. We’ll be using the java.awt.Robot for (slow) desktop capture, and piping the result to a server.

Once we have a video stream, it’s time to implement the Video server. The server will pipe the received input to all clients, including dropping frames for slow clients while not affecting fast clients. We’ll use this exercise to discuss various back-pressure/backoff tactics for slow connections. This section is where we’ll spend the most time, with a few various strategies tried.

At the end of the two hours, with the help of some pre-existing code, the attendees should understand the trade-offs in stream design based on hands-on experience with the effects.

About the speaker

This person is speaking at this event.
Ryan Knight

Senior Consultant at Typesafe

Sign in to add slides, notes or videos to this session

Tell your friends!


Date Tue 22nd July 2014

Short URL


View the schedule


See something wrong?

Report an issue with this session