Field guide to DDD/CQRS using the Scala Type System and Akka by Renato Cavalcanti
In this talk we'll explore some techniques you can use when implementing a DDD/CQRS application using Akka and Scala. First we'll show how we can use the Scala Type System to build a domain model based on case classes and functional paradigms. Contrary to what the common sense dictates, we'll demonstrate that functional programming is a very good fit for domain modeling. Secondly we'll explore the available options when integrating it with Akka and Akka Persistence. We'll cover the following points: The advantages and pitfalls of using Akka as a messaging subsystem How to reliably propagate events from the command side to the query side of your CQRS application How to recover from failure How to fit it in an asynchronous programming model We'll wrap-up the talk with a short demo application built on Play and Akka.