A study on Slick 3, reactive-streams and RxScala/RxJava
Slick 3.0 has a completely new API, which is more friendly for executing database actions asynchronously that, when executed, return a Scala Future or a Reactive Streams Publisher. An action is anything that you can execute on a database, like querying or inserting data.
Slick (“Scala Language-Integrated Connection Kit”) is Typesafe‘s Functional Relational Mapping (FRM) library for Scala that makes it easy to work with relational databases. It allows you to work with stored data almost as if you were using Scala collections while at the same time giving you full control over when a database access happens and which data is transferred. You can write your database queries in Scala instead of SQL, thus profiting from the static checking, compile-time safety and compositionality of Scala, but you can also use SQL directly. Execution of database actions is done asynchronously, making Slick a perfect fit for your reactive applications based on Play and Akka.
Slick features an extensible query compiler which can generate code for different backends. From version 3.0 and up, Slick is reactive and asynchronous. It has a lot of new features most notably: A new API for composing and executing database actions, support for the Reactive Streams API for streaming results from the database and improved configuration of database connections via Typesafe Config, including built-in support for HikariCP. -- Slick
The Slick code generator is a convenient tool for working with an existing or evolving database schema. It can be run stand-alone or integrated into you sbt/Maven build for creating all code Slick needs to work.
A full list of slick talks can be found here, below are the ones I found useful: