Synopsis
We often think of streaming as a niche concern: something that occurs in large-scale data-intensive systems or event-driven architectures. But streams are a lot more versatile than you might suspect. In fact, they form the cornerstone of almost every useful Scala application.
In this talk, we’ll navigate the rich waters of streaming. Using the lens of fs2, a functional streaming library, we’ll explore how certain problems can be expressed much more easily using streams. We’ll spot the more obvious streams in event-based systems and data processing, webservers and databases, but also discover more subtle streams in time-based processes and concurrency challenges.
We’ll learn what streams are for, how to think about them, when to use them and when not to. By the end, you’ll see a streaming framework as a simple and versatile tool in your toolbox, and will feel confident putting it to use in any area of your codebase.
Notes:
1. Scala (https://www.scala-lang.org) is an open source modern multi-paradigm programming language designed to express common programming patterns in a concise, elegant, and type-safe way.
2. FS2 (https://fs2.io) is functional, effectful, concurrent streams for Scala