Debugging session #2: Scala 3 lazy vals & serializationI covered our migration to Scala 3 extensively in my last blog post, but we deployed the migrated code to production only a week ago. Such releases are always a little stressful because you never know what kind of unexpected bug can occur, and on top...Mar 7, 2025 · 7 min readghostdogpr.hashnode.dev
Scala 3 Migration: Report from the FieldApril 30, 2024. I decided to dedicate a week to migrate our main project at work (a multiplayer mobile game server in production for over 4 years) from Scala 2.13 to Scala 3. May 7, 2024. I gave up. The removal of several features from Scala 3 (macro...2ECFeb 4, 2025 · 16 min readghostdogpr.hashnode.dev
Idiomatic dependency injection for ZIO applications in ScalaI often hear online in Scala-related discussions that ZLayer is "too complex" or "unnecessary". Those statements couldn’t be more different from my own experience: I think ZLayer is an incredible lifesaver! While it is true that it had some issues in...1CNov 4, 2024 · 9 min readghostdogpr.hashnode.dev
The Tri-Z Architecture: a Pattern for Layering ZIO Applications in ScalaAfter working on several different services and spending a lot of time improving the code to make it easier to use, I discovered a pattern for layering my applications that I found very useful. First, a disclaimer: this architecture is not a one-size...8ZWJAug 5, 2024 · 12 min readghostdogpr.hashnode.dev
GraphQL in Scala: Role-Based Access ControlToday, I'm going to answer a question asked by Łukasz Biały on Twitter: Is there a way to get field-level RBAC (Role-Based Access Control)? It turns out there is! However, Caliban's approach to authentication and authorization is quite flexible. In...Jun 3, 2024 · 7 min readghostdogpr.hashnode.dev