Notes

Foreword

1https://akka.io

2http://slick.lightbend.com

3https://typelevel.org/cats/

4https://typelevel.org/cats-effect/

5https://http4s.org/

6https://tpolecat.github.io/doobie/

7https://github.com/fthomas/refined

8https://fs2.io/

9https://github.com/softwaremill/tapir

10https://github.com/julien-truffaut/Monocle

Maybe there is another way

Impure implementation

1http://slick.lightbend.com/doc/3.3.1/database.html

Pure implementation

1https://pureconfig.github.io/

2https://github.com/typelevel/kittens

3https://typelevel.org/cats-effect/typeclasses/sync.html

4http://slick.lightbend.com/doc/3.3.1/sql.html

5https://blog.acolyer.org/2019/07/03/one-sql-to-rule-them-all/

6https://httpie.org/

7https://github.com/http4s/http4s/issues/2371

8https://www.wartremover.org/

9https://typelevel.org/cats-effect/datatypes/ioapp.html

What about tests?

1http://www.scalacheck.org/

2http://www.scalatest.org/user_guide/selecting_a_style

3https://rspec.info/

4https://github.com/scalatest/scalatest/issues/1370

Adding benchmarks

1https://jmeter.apache.org/

2https://github.com/http4s/http4s/issues/2855

Documenting your API

1https://swagger.io/

2https://swagger.io/tools/swagger-ui/

3https://swagger.io/tools/swagger-editor/

4https://github.com/swagger-akka-http/swagger-akka-http

5https://www.youtube.com/watch?v=snbsYyBS4Bs

6http://julienrf.github.io/endpoints/

7https://github.com/http4s/rho

8https://github.com/softwaremill/tapir

9https://www.servant.dev/

10https://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/poptics.pdf

11https://github.com/julien-truffaut/Monocle

12https://github.com/milessabin/shapeless

13https://tools.ietf.org/html/rfc4122

14https://www.ecma-international.org/ecma-262/5.1/#sec-7.8.5

Moving to Scala 3…

1We could have used scalafix here but I consider this overkill for such a thing.

2https://github.com/optics-dev/Monocle/issues/1001

3https://github.com/scalatest/scalatestplus-scalacheck/issues/36

4https://github.com/pureconfig/pureconfig/issues/970

5https://docs.scala-lang.org/scala3/reference/other-new-features/opaques.html

6https://github.com/softwaremill/quicklens