Quill + Doobie = Better Together
summary
Shows a concrete integration: Quill handles composable, type-driven SQL fragments and macro-expands them at compile time so you can see the SQL before it runs, while Doobie turns queries into ConnectionIO and fs2 streams and provides the transactor to run effects transactionally. The demo wires Quill -> Doobie -> fs2 -> http4s, composes large joins into reusable query pieces, and streams results from the DB. Caveats: runtime values must be lifted into quotes, type annotations break compile-time SQL, Scala 3 inlines are planned.
AI-written summary · about
chapters (11)
- 0:00Introduction to integration
- 1:27Understanding Doobie
- 4:20Practicalities and limitations
- 6:55Database complexity
- 10:06Introducing Quill
- 12:34Combining Doobie and Quill
- 14:53Compile time optimization
- 17:41Caveats and runtime conditions
- 21:25Large-scale application example
- 23:43Conclusion and wrap-up
- 27:18Q&A session
related talks
24mRex "Doobie": A Functional JDBC That Doesn't Hide SQL
49mScylla, Charybdis, and the mystery of Quill
30mPrograms as Values Pure Composable Database Access in Scala
37mFP Scala Meat & Potatoes...
32mEnd to End and On The Level
47mGrackle GraphQL server
48mCompositional, Expressive, Performant Database Queries: Choose 3
37mTyqu: Typesafe SQL Queries in Scala
