
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!