LOADING

Flexible Modeling: Keeping Your Domain Pure with Scala 3

In this talk, we will walk through a concrete example of a boilerplate-heavy domain. By replacing common Scala 2 workarounds with Opaque Types, Extension Methods, Enums, and Union Types, we will demonstrate how to achieve a strictly typed, decoupled architecture without the noise.

Magda Stożek
Staff Software Engineer, SoftwareMill
About This Talk

A clean Domain Model is hard to maintain. Over time, our core entities often become overloaded, accumulating database logic, infrastructure constraints, and JVM-specific boilerplate. We want a pure, rich domain, but we often settle for leaky abstractions or an explosion of wrappers just to keep the compiler happy.

Scala 3 offers a powerful, pragmatic alternative: you no longer need complex concepts to solve easy problems. By leveraging its modern toolset, we can define behaviors, data shapes, and relationships exactly where they are needed—without polluting the core entities.

In this talk, we will walk through a concrete example of a boilerplate-heavy domain. By replacing common Scala 2 workarounds with Opaque Types, Extension Methods, Enums, and Union Types, we will demonstrate how to achieve a strictly typed, decoupled architecture without the noise.

more great talks

Might Be Interesting

Day 1
  —  
4:50 pm
arrow pointing right icon

Effects as Capabilities

When writing software, we currently seem to have to choose between an imperative style - easy to read and write, hard to reason about - and a monadic style - hard to read and write, easy to reason about.This talk is about being greedy and getting the best of both worlds, because we deserve it.

Day 2
  —  
9:00 am
arrow pointing right icon

NamedTuples in Action

I would like to present the use of NamedTuples to implement some cool things in SQL Libraries

Day 1
  —  
4:15 pm
arrow pointing right icon

Real-Life Scala Capture Checking

This will be a live coding demonstration of Scala's newest feature set: capture checking.

Day 2
  —  
2:35 pm
arrow pointing right icon

Scala and TypeScript Synergy: Developing a real-time collaborative text editor

In this presentation, I will demonstrate how we leveraged the strengths of Scala and TypeScript to develop a collaborative text editor that meets the strictest standards for security, performance, and real-time collaboration.

Day 2
  —  
12:25 pm
arrow pointing right icon

Efficient programming with Scala and LLMs

Drawing from multiple Scala LLM workshops we conducted this past year, I will share insights to significantly enhance your AI experience.

See All Events
Join us!

We're looking for amazing speakers.
CFP is open till 10.01.2023

Fill in Call for Papers
location icon

Location

Centrum Konferencyjne POLIN, Poland
stay in touch icon

Follow Us

Contact Us