A free, once-weekly Scala news flash. Easy to unsubscribe. Goes out every Thursday.
February 22nd, 2024, ISSUE 520


My team built and productionized a custom rate limiter in Scala

A year ago, when I was leading a "Digital Platform" team at a large bank, we built and productionized a custom rate limiter in Scala. This is the story of why and how we did it.
Bilal Fazlani (@bilal_fazlani)
Benchmarking Tapir: Part 1

First part of a series where I analyze Tapir's overhead on different backends.
Krzysztof Ciesielski (@kpciesielski)
desert part 1 - features

This is the first part of a series of blog posts about my serialization library, desert.
Daniel Vigovszky (@dvigovszky)
WebSockets in Http4s

The WebSocket protocol enables persistent two-way communication between a client and a server where packets can be passed in both directions without the need for additional HTTP requests.
Daniel Ciocîrlan (@rockthejvm)
Improving my Distributed System with Scala 3 (Part 2)

In this article, we’ll be discussing some major changes around Bridge Four’s state management, its new-and-improved consistency guarantees, and other features and improvements I’ve added since.
Christian Hollinger (@chollinger93)
Tomas Mikula - My Scala Story

Tomas Mikula is a Lead Software Engineer, author of the Libretto library.
Tomas Mikula (@tomas_mikula)
Optimizing Functional Walks of File Trees

FS2 and Cats Effect go to great lengths to provide high level, compositional, performant APIs. Nonetheless, when performing hundreds of thousands of operations, care must be taken to keep performance acceptable. Throughout this post, we gradually refactored a simple implementation for performance, exploring different evaluation techniques and their impacts on performance.
Michael Pilquist (@mpilquist)
Automagic Scala Migrations

This report is intended as a supplement to the tools’ documentation and might help others in their journey to automatic scala migrations - and maybe a reader will have some suggestions for me.
Benjamin M. (@cptwunderlich)
Our journey begins

It's been a longstanding dream of mine to make C and Scala play nice. While Scala is one of my favorite languages, it tends to be trapped in the semi-walled garden of the JVM. I want to write apps that benefit the opensource community, like applications for KDE.
Mark Hammons (@MarkHammons)
Crossing those hills

Second part of the series.
Mark Hammons (@MarkHammons)


Game development in Scala.js with David Smith

David Smith and I discuss game development in Scala.js / Scala 3 using the game engine Indigo and the front end framework Tyrian.
Sébastien Doeraene, David Smith


Wroclaw Scala User Group, Feb 26th, Wrocław, Poland

Future of effects in Scala & Moving a query engine from Akka to ZIO.
Wrocław Scala User Group
ScalaWAW #31, Feb 27th, Warsaw, Poland

Come and watch talks by Tomasz Kogut and Łukasz Biały.
ScalaWAW (@scalawaw)
Functional stream processing workshop before Scalar, Mar 20th, Warsaw, Poland

Stream processing lies at the heart of many complex problems. Learn to solve them with fs2, the most sophisticated functional streaming library. This workshop will demystify the art of functional stream programming. We’ll see how cats-effect and fs2 excel in event-driven architectures and tackle complex concurrency challenges; all the while maintaining performance, resource safety and error recovery. As a final challenge, we’ll use our knowledge of event-driven systems and concurrent processes to code and animate a simulation game in Scala 3.
Zainab Ali (@_zainabali_)
Full-stack Scala 3 with the ZIO stack workshop before Scalar, Mar 20th, Warsaw, Poland

Lear about structuring a full-stack application for the ZIO stack; writing effectful, purely-functional modules for database interaction and web servers; separating business logic from the "operational" parts of an application; adding configuration, testing, refactoring; integrating Laminar with ZIO for a powerful frontend, on top of ScalaJS; adding full-stack features to an application; understanding patterns and anti-patterns while working with ZIO; building and configuring for dev, staging, prod.
Daniel Ciocîrlan (@rockthejvm)
Scalar, March 21st - 22nd, Warsaw, Poland

Join the greatest Scala conference in Central Europe!
Scalar Conference (@scalarconf)
LambdaConf, May 4th-10th, Estes Park, Colorado

Get ready!
LambdaConf (@lambda_conf)
ScalaMatsuri CFP, June 7th-9th, Tokyo, Japan

The CFP will close at February 24, 2024 (Saturday) at 23:59.
ScalaMatsuri (@ScalaMatsuri)



A functional, type-safe and memory-safe class to handle secret values.
David Geirola

A plugin for SBT for dealing with Maven BOM in SBT projects.
SBT BOM contributors

Byte Pack is a library to pack and unpack scala case classes into IArray[Byte].
Romain Reuillon

  1. Scala Times Issue #520

    My team built and productionized a custom rate limiter in Scala. Benchmarking Tapir: Part 1. WebSockets in Http4s. Improving my Distributed System with Scala 3 (Part 2). Tomas Mikula - My Scala Story.

  2. Scala Times Issue #519

    Debugging session #1: zio-logging & quill. Scala Developer Advocate open hours - AMA . Better Shell Scripting with Scala-CLI. C-style for loops in Scala 3. Paweł Marks - My Scala Story.

  3. Scala Times Issue #518

    Scala Center Roadmap for 2024. Maciej Gorywoda - My Scala Story. Vladyslav Pekker - My Scala Story. Nicolas Rinaudo - My Scala Story. Adam Warski - My Scala Story.

  4. Scala Times Issue #517

    #1BRC in Scala & Scala-Native. Errors happen. Can we get rid of them using ZIO Test?. Scala IO, Feb 15th-16th, Nantes, France. Functional stream processing workshop before Scalar, Mar 20th, Warsaw, Poland. Scalar, March 21st - 22nd, Warsaw, Poland.

  5. Scala Times Issue #516

    GraphQL in Scala: Handling side effects. Type class constraints in object algebras. Migrating event sourced Akka application from CockroachDB to AlloyDB. Jakub Kozłowski - My Scala Story. Scala 3: My migration journey.

  6. Scala Times Issue #515

    Deriving Tail Recursive Fibonacci. Virtual Threads Looming with Adam Warski. Scala Meetup, Jan 31st, Hamburg, Germany. Scala Meetup @ MOIA feat. VirtusLab, Feb 1st, Berlin, Germany. Scala IO, Feb 15th-16th, Nantes, France.

  7. Scala Times Issue #514

    Kotlin from Scala perspective: Advent Of Code 2023. Partially applied functions and currying. GraphQL in Scala: Advanced Schema Generation. Async File IO. Update NextDNS with a Scala CLI script.

  8. Scala Times Issue #513

    Scala 2 Macro Tutorial. A Beginner's Guide to GraphQL in Scala. Writing modular application using the Kyo library. What Can Scala Learn from Rust?. Scala IO 2024, Feb 15th-16th, Nantes, France.

  9. Scala Times Issue #512

    Scala's great ecosystem. What Can Scala Learn from Rust?. Scala IO 2024, Feb 15th-16th, Nantes, France. Scalar 2024 CFP, March 21st-22nd, Warsaw, Poland. LambdaConf 2024, May 4th-10th, Estes Park, Colorado.

  10. Scala Times Issue #511

    Designing a (yet another) retry API. The compilation cost of implicits. Scala Survey Results 2023. Get started with Scala. The X-Ray Mode.

  11. Scala Times Issue #510

    IntelliJ Scala Plugin 2023.3. How to avoid For-Comprehension Pitfalls in Scala. My migration journey. #89 Algebraic Effects with Kyo: Happy Path Programming. Scala in the City, Dec 14th, London.

  12. Scala Times Issue #509

    Type class derivation with ZIO Schema. Scala traits vs enums for ADTs. Practical Type-Level Programming in Scala 3. Extension of Erased Values in Scala 3. For-Comprehension Use Cases in Scala.

  13. Scala Times Issue #508

    Effective Test Parameterization with ScalaTest Tables. Indoor Vivants: Scala Native and Swift: building Twotm8 MacOS app. Entry 1: fs2, gRPC, Triton Inference Server. Poll: Semiauto derivation in circe for Scala 3. Introduction to Functors With Scala 3.

  14. Scala Times Issue #507

    Scala Left Fold Parallelisation - Three Approaches. Advent of Code 2023. Helix and Scala. 10% discount for Functional Scala, Nov 30th - Dec 1st, London. LambdaConf 2024, May 4th-10th, Estes Park, Colorado.

  15. Scala Times Issue #506

    In Scala 3, use 4 Spaces for Indentation. Writing a Chat With Akka. How to retry a Future in Scala. 10% discount for Functional Scala, Nov 30th - Dec 1st, London. LambdaConf 2024, May 4th-10th, Estes Park, Colorado.

  16. Scala Times Issue #505

    Getting started with ZIO, part 3. Laminar & Scala.js Full Stack Demo & More. Harness the power of Web Components with Scala and Laminar. Rendezvous Benchmark Analysis: When Threads (Don't) Meet. How scala-cli Shines in Automation.

  17. Scala Times Issue #504

    Custom logic from Accept header with Tapir. Using Nix to Develop and Package a Scala Project. Scala Center Activity Report for 2023 Q3. How to convert an Option to an Either in Scala. Free support for Scala 2 to 3 migration.

  18. Scala Times Issue #503

    Tell us which errors bug you the most. Videos from Scala Days 2023. Schema management with Scalameta. Art of Scala, Nov 17th, Warsaw. 10% discount for Functional Scala, Nov 30th - Dec 1st, London.

  19. Scala Times Issue #502

    In Defence of Mocks. Turning actors inside-out. Learn how to package your Scala application with ease. Why on earth a ZIO IO monad for Scala?. 10% discount for Functional Scala, Nov 30th - Dec 1st, London.

  20. Scala Times Issue #501

    TestContainers in Scala: Use Integration Tests for building your services. Scala Made Simple for Beginners. Integration testing the Typelevel toolkit. Why I find Scala so amazing. I got interviewed for a FAKE Scala job....

  21. Scala Times Issue #500

    IntelliJScala @ Scala Days 2023 Madrid. OOP classes vs Higher-order Functions (HOFs). Work-in-Progress Scala 3 Specification. 10% discount for Functional Scala, Nov 30th - Dec 1st, London. LambdaConf 2024, May 4th-10th, Estes Park, Colorado.

  22. Scala Times Issue #499

    State of Scala 2023 by ScalaCenter and VirtusLab. JDK 21 LTS - All Features Explained!. The Scala Center Fundraising Campaign. So, What's So Special About The Mill Scala Build Tool?. Kyo: Toolkit for Scala Development.

  23. Scala Times Issue #498

    Generating a Rust client library for ZIO Http endpoints. Why Scala Dominates Data Engineering. CFP: NEScala 2023. London Scala Talks, Sept 20th. 10% discount for Functional Scala, Nov 30th - Dec 1st, London.

  24. Scala Times Issue #497

    Compare Task Processing Approaches in Scala. Temporal Workflows with ZIO: Introduction. REST APIs Using Play Framework and Scala: A Comprehensive Guide. Automating Data Transformations with ducktape. CFP: NEScala 2023.

  25. Scala Times Issue #496

    Lightbend transfers ownership of sbt to the Scala Center. Type safety with Iron. Scala Days Madrid, Sept 11th-12th. Performance Optimization on the JVM, Sept 11th-15th, Online. London Scala Talks, Sept 20th.

Organizing an event?
Promote it with
Scala Times.
The Scala Times reader?
Get a banner!
Got a tip?Send it in!
Follow us on Twitter.
Curated bySoftwareMill.
We arehiring.
Andtaking on projects.