Training | Functional JDBC layer for Scala and doobie

Training about how to learn how to interact with relational databases by applying Functional Programming principles using the doobie library.

8 hours
FP and framework oriented


doobie: is a pure functional JDBC layer for Scala and Cats. It is not an ORM, nor is it a relational algebra; it simply provides a functional way to construct programs (and higher-level libraries) that use JDBC.  

In this course, we’ll learn how to interact with relational databases (DB) like Postgres by applying Functional Programming (FP) principles like immutability, composability, referential transparency, and side effect isolation using the doobie library.


  • One year experience in Scala or any other FP programming language.
  • Knowledge of libraries like cats and cats-effect will be required.
  • Experience in other DB frameworks like slick or quill will be useful, as well as some background with relational databases like Postgres.

What you'll learn

  • How to design and implement a Scala DB layer based on strong Functional Programming basics using doobie.

  • How connections are made and how to query data to the DB tables, where we’ll count on the Scala type system and the compiler, to make all these queries type-checked.

  • Gain knowledge of DDL, Inserting, and Updating and how to use Statement and query Fragments (composition) to structure a DB layer.

  • How to design proper DB Error Handling and how to test the persistence layer.

  • Finally, we’ll go through examples of real domain problems and apply all the concepts we've covered in the course.

Are you interested in scheduling this training for your company?

Contact us

Are you interested in attending a public training course?

Contact us

Alexandru Simonescu

“I’ve been developing software for more than ten years, and I think that learning functional programming through this training opened my mind and gave me more tools to solve my daily tasks in a more efficient way.”

Ilia Berlana

“This training was amazing. It gave me a new point of view about programming. I’ve been programming in Java for ten years in the backend on Android, and my next challenge is Kotlin, and this training helped me a lot.”

Juan Carlos García

“I’m very happy because I learned a lot, and I got some new tools I can use in my work day-to-day.”