Case Study: Cadenza, a web application built from an all-Typesafe stack
Micronautics Cadenza powers ScalaCourses.com, and is built from Play, Scala, Slick, Akka, Plus Bootstrap and Postgres, running on Heroku and using a variety of AWS services. The talk will discuss lessons learned with selected production code fragments, demonstrated live via the REPL. Topics will include: Under-documented Play project configuration secrets Discussion of custom CRUD persistence layer using Slick and Play caching for horizontal scaling, and the necessary MVC pattern to realize it Lazy instantiation, Scala monads and combinators for efficient traversal of the domain model Play REPL launched for a specific configuration, with live database access backing domain objects End-to-end JSON (database to web client) Mike is willing to discuss and demonstrate any of the following topics as time permits, in response to questions from the audience: Complex Play templates written in pure Scala Under-documented methods of implementing complex Play data validation constraints used to verify integrity of user-submitted data Configuration data managed by scripts so multiple application instances with unique settings can easily be managed Typesafe Configuration and Heroku configuration variables working together