Day 2 -

Sept 13th

Stage 1 (Rolling)

14:30 - 15:15

Concurrency in Scala and on the JVM

Concurrent programming is one of the areas where Scala shines. Due to its flexibility in defining new abstractions, we can enjoy concurrency toolkits that provide declarative concurrency APIs. They often eliminate the causes of race conditions or deadlocks at their source.

Despite concurrency being Scala’s specialization, or probably because of that fact, the landscape of concurrency libraries and frameworks is dynamic. There are a couple of approaches that have been gaining popularity: starting with Akka, through Monix, cats-effect, ZIO, joined recently by a new contender: libraries based on JVM’s Loom project.

Let’s characterize the various approaches to concurrency, revealing their strong and weak sides so that you can pick whatever suits your project best. We’ll consider safety, developer experience, readability, interaction with effect systems, type-level guarantees, and more!

Adam Warski


I am one of the co-founders of SoftwareMill, where I code mainly using Scala and other interesting technologies. I am involved in open-source projects, such as sttp, tapir, Quicklens, ElasticMQ and others. I have been a speaker at major conferences, such as JavaOne, LambdaConf, Devoxx and ScalaDays.

Apart from writing closed- and open-source software, in my free time I try to read the Internet on various (functional) programming-related subjects. Any ideas or insights usually end up with a blog.


Join our conference

Subscribe and follow @ScalaDays on Twitter for the latest conference updates.