Skip to content
0:00 / 0:00

#catseffect#effectsystems#iomonad

Keynote: Daniel Spiewak - The Case For Effect Systems

Konfy

4K subscribers • 13 videos on Hallway

YouTube
  • Recommended by 1 person: 1 in engineering communities.
  • Presented by Daniel Spiewak
  • An opinion. It argues one side of a question engineers disagree on.

Advanced. Deep dive for people who know the field.

17K views4 years ago1 recommendation

Programming languagesSystems programmingScalaConcurrency and parallelismFunctional programming

Daniel Spiewak explains the performance, reliability, and architectural benefits of using effect systems on the JVM.

Scaling and stabilizing cloud services in the face of torrential volumes of traffic is one of the major problem spaces that defines our language ecosystem. Problems such as reliability, predictability, throughput, efficiency, self-healing, and such are the primary factors which largely dictate both architectural and implementation decisions. In this talk, we will peel apart how these factors manifest on the JVM, ultimately motivating not only the asynchronous I/O paradigm in general but effect systems in particular, with a special emphasis on performance and efficiency in the real world. 2022.scala.love twitter.com/scala_love

Why it's here

1 person recommends this

What people say. Engineers recommend this talk for its deep explanation of why effect systems outperform Futures under heavy load.

Moments people linked to

u/The-_Captainin r/scala • Recommends

Why are effects better for retries than Future? I am watching this great talk by Daniel Spiewak motivating effects. In particular, there is a point where he mentions that you can't do retries with Future, but you can with effects. Of course you literally can do retries with futures (e.g. here), but you risk repeating side-effects that aren't properly contained in a transaction. Why is this not the case for effects? Example: say I want to log a statement then read a value from a database. In the case of a future retry, suppose the first attempt logs successfully then fails to read. The retry logs the statement again then reads from the database (successfully), resulting in two logs instea…

u/lionflzcfxpcuugdshin r/scala • Mentions

Elaborating on the load shedding claims in "effect system" aka IO monad TLDR - how to make sure my server written in IO doesnt die when load spikes. Also how to not have latency spikes but instead return errors when server limits are reached So in his talk The Case For Effect Systems Spiewak says something(its timestamped) like "I had a service that could handle 100 connection and then when it got a 1000 it didnt crash because it was written with IO and Resource" and doest really elaborate on why that was the case From my point of view its very easy to have such guaranties in "1 thread per request" model since all you have to say is "this thread pool of size 100 will handle http conne…
12View on Reddit

u/caverweniin r/Clojure • Mentions

IO/async monad without the indirect monadic style: Possible? needed? Hi, I'm newish to Clojure, mostly trying to find solutions for shortcomings of other approaches I gained before. My background is in Scala, and I'm exploring ways to move away from it because I think a lot of the complexity that teams and the community generally speaking brings in doesn't pull its weight. One particular area where I thought this is the case is doing all IO in a monad, which results in far less straightforward monadic code compared to the usual approach. --- Recently there has been an exchange of opinions on the issue that made me realize a couple of things: * moving away from an IO monad ridden lan…

u/Daenythin r/functionalprogramming • Mentions

On “What developments have there been in FP over the last 10 years?”

One of the big trends is monadic effect systems becoming more mainstream. Things like rust's tokio and scala's cats-effect provide a very strong foundation for building concurrent applications in a functional way link to this video