Streams, Scala, Concurrency
Max. Attendees: 12
Concurrent systems are vital, but are notoriously difficult to design. Without proper safeguards, it's all too easy to introduce bugs, race conditions, resource leakage and deadlocks.
In this workshop, you'll learn how cats-effect IO can be used to design reliable, bug-free, testable concurrent systems.
We explore different techniques of describing concurrent processes, such as structured concurrency and supervision, and see how these can be coded using cats-effect.
We'll run through a brief history of concurrency in Linux and the JVM, and see how this influences the cats-effect IO API. In particular, we look at the difference between blocking and non-blocking IO, learn when each should be used, and how they integrate with other async processes.
Finally, we'll learn how to write fast tests for time-based processes using the cats-effect test runtime. By the end, you'll have a solid grasp of cats-effect and the confidence to design reliable concurrent systems to suit your own needs.
This workshop is aimed at developers of all experiences and backgrounds who are curious about concurrent systems, threads, and how to manage them reliably. You'll particularly benefit from this if you need to choose a runtime, such as cats-effect, or ox, and want to understand their differences.
This is a half-day workshop, from 9AM - 2PM.
A knowledge of basic Scala syntax (either Scala 2 or 3). You don't need any functional programming experience, or any familiarity with cats-effect.
You'll need a laptop with an IDE setup for basic Scala projects.
Apple, Disney, ITV, BBC, Xebia, SiriusXM, Jack Henry, JP Morgan, William Hill, and many more.