RSSAmplifier

Blog

Pierre Ricadat's Tech Blog

Articles about Scala, ZIO, GraphQL, and Open Source

blog.pierre-ricadat.comRSS feed ↗15 posts

Latest posts

The Scala Library Author's Dilemma

How Sage ended up supporting ZIO, Cats Effect, Kyo, Ox, and Pekko from one codebase, what I tried before, and the tradeoffs I still had to accept.

Event Sourcing with PureLogic

Using PureLogic, we can model event-sourced domain logic in direct style while ensuring that state changes and emitted events always stay in sync.

Protobuf Goes Scala-First

My journey toward regaining developer productivity while working with Protobuf in a large Scala codebase.

Introducing PureLogic: direct-style, pure domain logic for Scala

PureLogic is a new Scala 3 library for writing pure domain logic using direct style instead of monads. It provides 4 capabilities (Reader, Writer, State, Abort) that compose naturally through context functions, with zero dependencies and 7-40x better performance than monadic alternatives.

Debugging session #2: Scala 3 lazy vals & serialization

I 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 alway...

Scala 3 Migration: Report from the Field

April 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...

Idiomatic dependency injection for ZIO applications in Scala

I often hear online in Scala-related discussions that ZLayer is "too complex" or "unnecessary". Those statements couldn’t be more different from my own exper...

The Tri-Z Architecture: a Pattern for Layering ZIO Applications in Scala

After 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 ap...

GraphQL in Scala: Role-Based Access Control

Today, I'm going to answer a question asked by Łukasz Biały on Twitter:

Tuning ZIO for high performance

Let's start with a disclaimer. What is discussed in this article is not the ultimate truth: how to make your application faster highly depends on what your a...

Supporting high-performance response streaming in Shardcake

Shardcake is a Scala open source library I created in 2022 to easily distribute entities across multiple servers (sharding) and to interact with them using t...

Debugging session #1: zio-logging & quill

In this new series of posts, I will share walkthroughs of debugging sessions I had to do at work to solve real-life problems, in the hope that both the proce...

GraphQL in Scala: Handling side effects

In my Beginner's Guide to GraphQL in Scala, I created a simplistic resolver that just returned data from an immutable value loaded in memory. In real-life us...

GraphQL in Scala: Advanced Schema Generation

In my Beginner's Guide to GraphQL in Scala, I explained how Caliban can automatically transform Scala types into GraphQL types through a process called schem...

A Beginner's Guide to GraphQL in Scala

This article demonstrates how to create a simple GraphQL API using the Scala programming language, with the help of a library called Caliban. It is aimed at ...