Markus Jura — Things I wish I knew when I started with Akka (45 minutes)
Using Akka the "right way" is non-trivial. At its 10 years anniversary, I'd like to share my early pitfalls and misusage of this great toolkit and how you can master it to write fault-tolerant and elegant programs. Based on my bias opinion, you'll learn how to structure actors inside an application and when advanced cluster techniques such as Sharding, Persistence and Distributed Data should be used or not.
Julien Tournay — Data Processing @Spotify using Scio (45 minutes)
Two years ago, Spotify introduced Scio, an open-source Scala framework to develop data pipelines and deploy them on Google Dataflow. In this talk, we will discuss the evolution of Scio, and share the highlights of running Scio in production for two years. We will showcase several interesting data processing workflows ran at Spotify, what we learned from running them in production, and how we leverage that knowledge to make Scio faster, and safer and easier to use.
Miklós Martin — Scheduling and retrying effects with cats (45 minutes)
Scheduling code to run inside the JVM is a common task in my experience. The number of different implementations we had for this problem was on par with the number of services we had. Also, they were all built on top of Akka's Scheduler which means they would not fit well in a pure program, require an actor system, are hard to test and the tests are painfully slow. Eliminating these problems was the main motivator for our new open source library. After the first ideas had been implemented and used in production, we have come across ZIO Schedule, which inspired a major rework. It also made us realize that this can not only be used for scheduling jobs, but also to schedule retries. This talk presents how the ideas of ZIO Schedule were implemented using the type classes from cats-effect, and how this library can be used.
Anatolii Kmetiuk — Theory of Constraints in Programming: Beyond Problem-Solving
It's talk not directly related to Scala, but about intention for problem solving. Theory of Constraints, coined by Eliyahu M. Goldratt, comes from the business world and explains how to debug complex systems with interdependencies and exploit them to their utmost capacity. Programming challenges constitute complex systems too. In the Scala community, there is a lot of attention lately to purely functional style, Monads, Cats etc etc – but without treating these concepts as a part of a larger, interconnected system (starting from the programmer's mind and potentially expandable to the scales of the entire world), it is possible to deteriorate the entire system. In this talk, I am going to explain what motivated me to discover and incorporate the Theory of Constraints in my programming style, how we naturally go from problem-solving to problem-definition this way, and why purely functional style is not a silver bullet
Xavier Tordoir — Introduction to Tensorflow in Scala (45 minutes)
Machine learning (ML) is becoming a common component of software. ML engineering is an emerging field, tools and good practices being gradually developed. Tensorflow is a very popular ML framework with a growing ecosystem for production purposes: Tensorflow Serving and Hub. Using a Scala environment, we introduce Tensorflow and its use (learning models and predicting), and how to work with add-ons for production.