2-3 May 2017, Oslo Norway
flatMap(Oslo) a functional programming conference with focus on Scala and the Java Virtual Machine

Functional Web Services with Final Encoding


In this talk, we will join Markus Hauck into the land of functional web services using final encodings. We will see what a final encoding is and how to write embedded DSLs in this style. After that we can implement a web service using a DSL written in the final encoding and compare that with the normal OO-heavy style.

The talk will show the so called "final encoding" technique that is somehow related to free monads, but as been overlooked for some time now. They also allow an embedded DSL that can be "interpreted" differently according to your mood, but compose more natural than coproducts and free monads. I want to show in this presentation a way to write a whole web service using for example http4s or akka-http in this style and how nice it is for testing stuff by swapping out interpreters. I hope that the talk can cover both beginner topics (how to write web services in a more functional style) as well as a little advanced ground (how to write your final encoding).

Markus Hauck

Markus Hauck


Markus is a german IT Consultant for codecentric AG. He has done Scala since about 7 years, interleaved with quite some Haskell love.

Past speaking experience includes flatMap(Oslo) 2016 (Free Monads and Free Applicatives), Scala.io 2016 in Lyon as well as the Advanced Scala Training during ScalaDays Berling 2016 and the coming ScalaDays Copenhagen 2017.