Lessons from a Rushed Scala 2.13 to Scala 3 Migration: Performance Challenges in Data Ingestion Services
By
kmaliszewski
A respectable bake. You'd come back tomorrow for another.
Summary
The article discusses a developer's experience migrating a service from Scala 2.13 to Scala 3, focusing on performance challenges encountered during a rushed migration. While the author had generally positive experiences with Scala 3 migrations in the past, this particular project involved a data ingestion service where performance was critical. The article shares lessons learned from the migration process, emphasizing that the slowdown wasn't due to the language or compiler itself, but rather the rushed nature of the migration and specific project characteristics.
Key quotes
· 4 pulledIs this clickbait? Not really. Is this the fault of the language or the compiler? Definitely not. Rather, it was part of a rushed migration. Sharing the lessons learned in the process.
I was refreshing one of our services. Part of this process was to migrate codebase from Scala 2.13 to Scala 3. I've done this a few times before and overall had a positive experience.
The service in question had no macros at all, but it was at the heart of data ingestion, so performance was not an afterthought.
Well, at least until we talk about projects with macro wizardry.
You might also wanna read
Dynamic Borrow-Checking in a Toy Programming Language: Implementing Rust-like Memory Safety Without Static Types
This article presents a demonstration of a toy programming language that implements borrow-checking without static type-checking. The langua
C++26 Standard Draft Finalized with Reflection, Memory Safety, Contracts, and New Concurrency Framework
The C++26 standard draft has been completed, introducing major new features including reflection capabilities that allow C++ to describe its
Understanding Fil-C: A Simplified Model of Memory-Safe C/C++ Implementation
The article presents a simplified model of Fil-C, a memory-safe implementation of C/C++. It explains that while the real Fil-C uses a compil
Sky: An Experimental Elm-Inspired Programming Language That Compiles to Go
Sky is an experimental programming language that combines Go's pragmatism with Elm's elegance to create a fullstack functional programming l
Analyzing Rust's Coherence and Orphan Rules: Ecosystem Development Challenges and Proposed Solutions
This article critiques Rust programming language's coherence rules and orphan rules, which prevent implementing traits for types defined in
SBCL Fibers: Implementation Design for Lightweight Cooperative Threads
This is a draft design document describing the implementation of lightweight userland cooperative threads (called 'fibers') for SBCL (Steel
