Running Pure Functional Microservices On JVM
Scala is one of the finest languages on JVM which help us in writing functional code. But can we further make our microservices more concurrent, less error-prone and generic/reusable?
In this session, we would be answering the above questions by visiting one of the most powerful functional libraries in Scala i.e Scala-Cats, which provides abstractions for functional programming and make things developer friendly and feature rich. The syntax and classes of Scala-Cats are similar to Haskell. Various libraries are built over Scala-Cats which aids us in building a purely functional microservices over JVM. In this talk, we would be building microservices using typelevel projects like http4s, circe, doobie and more which are based on Scala-Cats.
We would be demonstrating applications of various scala-cats libraries and perform basic CRUD operations using them. By using http4s we would be implementing synchronous, asynchronous and streaming rest endpoints, using doobie which is a pure functional JDBC layer for Scala etc.
Outline/Structure of the Experience Report
Within 45 minutes we would be building Microservices which would be demonstrating the use of Scala-Cats based libraries like http4s, circe, doobie, etc and advantages of using them.
Learning Outcome
The session would facilitate with the information on building microservices more concurrent, less error-prone, generic and feature rich. A brief overview of libraries like scala-cats, http4s, doobie etc for writing pure functional code in Scala with ease.
Target Audience
Those who like FP and want to build pure functional microservices over JVM
Prerequisites for Attendees
- Scala basics syntax.
- Brief knowledge of functional design patterns like Monoids, Semigroups, Monads, Functors and more...