Workshops

Real-World ZIO

Intermediate

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?