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.