After 20+ years of JDBC it's time to re-imagine database access in a more modern way. In this talk we will explore the design and implementation of Skunk, a Scala library that provides a pure functional, non-blocking API for Postgres, without JDBC. We begin with the socket protocol and binary encoding of messages, build through asynchronous message queueing, atomic message exchange, parameter and row encoding, useful error reporting, transactions, concurrent streams, and finally look at some real-life programs that demonstrate the power and flexibility of a modern functional database API.
This is an intermediate/advanced talk that assumes some knowledge of functional programming in Scala. Familiarity with Scodec, Cats-Effect, and FS2 will be helpful but is not required.
I have been programming for more than 35 years and nothing has improved the quality and maintainability of my code more than adopting typed FP. I think all programmers can benefit from understanding this style of programming, and I am dedicated to helping interested people learn.