Mark Moore- Whirlwind Tour of the Scala Functional Programming Ecosystem- λC 2019

Опубликовано: 04 Апрель 2026
на канале: LambdaConf
182
7

Let's go on a whirlwind tour of the Scala FP ecosystem as we create an SMS service that mirrors one currently in production at iOFFICE. We will show the motivation for abstracting over effects while laying out our business logic before using ZIO to provide the pure interface with the outside world Let's go on a whirlwind tour of the FP library ecosystem as we implement a text messaging service that mirrors one currently in production at iOFFICE. We will start with the design of the application and abstract over the outside world to create our business logic in a purely functional, easily testable way. We will then utilize the rich library ecosystem to implement the means by which our application will interact with the world whilst retaining its pure nature. Finally, we will wire everything together and have an example of a strongly typed pure functional application that is ready to deploy!

Required Knowledge
A Foundational level of Scala syntax is all that is expected from the attendees.

Learning Objectives
Provide the motivation for designing an application that abstracts over specific effect types.

Demonstrate how far the Scala FP ecosystem has come by using the latest and greatest libraries to interact with the outside world.

Show how the power of abstraction has enabled the authors of these libraries to build on a core set of fundamental concepts that allow these libraries to be perfectly composable while having zero dependencies on each other.

Some of the libraries we will encounter are:
Scalaz, which defines a set of foundational type classes and provides purely functional data structures to complement those from the Scala standard library.

ZIO, which is a general purpose effect monad, and associated abstractions that provide type-safe, composable concurrency for Scala.

Http4s, a minimal idiomatic Scala interface for Http Services.

Doobie, a purely functional JDBC layer for Scala.

FS2, a compositional, streaming I/O library for Scala.