Workshops

Real-World ZIO

Intermediate Room 3

Abstract

Just as Scala has transformed the way we build applications with functional programming, ZIO makes it easy to build provably correct systems and APIs to connect to them. With a focus on functional Scala and a real world application, this workshop is a practical way to learn full stack Scala 3 with ZIO and related libraries

Target Audience

  • Developers at all levels (junior, mid, senior) comfortable with the Scala language
  • Anyone interested in the ZIO stack, Laminar and ScalaJS in a real life setting
  • Technical decision-makers curious whether the ZIO stack a suitable toolkit for a full-stack application

Prerequisites

Comfort with the Scala language including given/using clauses and functional programming essentials, and general understanding of basic concurrency principles.

Requirements

You’ll need a laptop with an IDE setup for basic Scala projects.

Agenda

Part 1: ZIO

  • What’s an Effect
  • The ZIO effect, building programs and combining effects
  • Error handling
  • Essential concurrency
  • Cancellation

Part 2: Backend Applications with ZIO

  • Quill - interacting with a database
  • Tapir & ZIO HTTP - creating web servers and REST APIs
  • Integrating effects at all layers
  • Separating modules
  • Automatic dependency injection
  • Testing
  • Passing configuration

Part 3: Frontend with Laminar

  • How Laminar works
  • Rendering, functional reactive programming
  • Developing a single-page application
  • Organizing pages, components and routing
  • Calling backend APIs
  • Integrating with Tapir and ZIO

Part 4: Putting it all Together

  • Developing, building and running a full-stack Scala 3 application
Daniel Ciocirlan

Rock the JVM

Are you interested in this workshop?