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.