Retrying the retry design & How Scala is made?
Join us next week on 19th March for a Krakow Scala User Group Meetup to see some talks that will be later on the Scalar Conference in Warsaw. This will be much more relaxed than the conference and you will be able to ask our speakers all the questions you want. The event will be held in English.
Check out the details.
‘Retrying the retry desing‘ - Michał Płachta
Retrying failed side-effectful actions is the bread & butter for all programmers. Whether you use Python, Ruby, Java, or Scala, you’ll use the same retry strategies: usually some backoff and randomness.
In functional Scala, we use the powers of referential transparency (RT). If your API call is described as an IO value, you just create a new IO value that adds the retry logic of your choice. Easy, right?
Things get nasty very quickly when an API or a DB you call has more constraints. Imagine a retry strategy that starts with a 5ms delay and uses a Fibonacci backoff, but each individual delay is capped at 5s and you always do a final retry after the timeout passes. How would you make sure it’s working correctly? Is referential transparency helpful?
In this talk, I will discuss why it's hard to use the power of RT to test side-effect-heavy apps. The main problem is that our APIs and library APIs don't use the full power of RT: they focus too much on side effects and not the value representation of these side effects. This in turn makes testing such apps very difficult. I will present some alternative ideas for a better, more RT-friendly design for retries and many more side-effectful APIs.
'How Scala is made and how you can help‘ - Krzysztof Romanowski
I am using Scala from 2011 and since 2019, part of my job (and the main reason I picked it) is to grow Scala and its community. In this talk I will explain the inner workings of an organisation that goes into releasing, maintaining and developing Scala and core parts of its ecosystem. I will discuss what are those parts, what problems the team of teams face and what you can expect in the future.Later, I will focus about ways to support the ecosystem. The help comes in various shapes and I will try to convince you that there is one that fits your needs.As build tools are my pet peeve, expect some Scala CLI and Bazel as well!
Speakers:
Michał Płachta - Author of 'Grokking Functional Programming'
Krzysztof Romanowski - Head od DX and Scala at VirtusLab
The event is sponsored by VirtusLab & Proxy Live Solutions.