We managed to alleviate almost entirely the slowdown induced by Tapir in a web socket server. The journey towards this goal was quite insightful, and we would like to share it with you.
We love to use Tapir for the rapid development of Web APIs. Recently, we noticed it considerably impacted the performance of a web socket server (increased latency, lower throughput, heightened CPU usage). We managed to alleviate the slowdown almost entirely (reducing the overhead to a minimum - much less latency and CPU usage, greater throughput - performance rivalling a plain cats-effect/http4s/fs2 stack). The journey towards this goal was quite insightful, and we would like to share it with you. In particular, we will cover async-profiler, introduce you to some high-level concurrency combinators of the fs2 library and show some surprising benchmarks.
Let the results be a testament to the JVM’s excellent tooling and a proof that one can use high-level Scala libraries like Tapir without compromising on overall performance.
In this talk, we’ll show first the different techniques we can use to apply constraints is our domains. Then, we’ll present Iron, its features, extensions, and integrations. We’ll finish by showcasing a fully integrated constraint-enforcing app.
I would like to go over the most relevant tools and changes that can improve your developer experience.
Join me for a fun and possibly opinionated talk about the state of Scala and other JVM languages.
This talk is my slightly expanded version of that statement, and should hopefully understand what "Free" is, what purpose it serves and where it came from.
In this beginner-friendly talk we'll try to find out using the power of Scala and functional programming techniques.