Domain Driven Design and Onion Architecture in Scala - by Wade Waldron
This talk was recorded at Scala Days New York, 2016. Follow along on Twitter @scaladays and on the website for more information http://scaladays.org/. Abstract: Domain Driven Design has been a game changer in my career. Combined with Onion Architecture it has made improvements to my code, in both readability and maintainability. Scala is ideally suited to Domain Driven Design. Case classes and traits allow us to rapidly prototype a domain. We can iterate over that domain quickly as we build. This makes it trivial to specify a rich description of a domain with very little code, and minimal investment of time. Onion Architecture provides us with the tools needed to create clean package structures. It provides a framework for creating the abstraction layers to allow your code to be portable, testable, and easier to maintain. In this code-driven talk, I will explore the techniques I developed while using Domain Driven Design and Onion Architecture in Scala. I will discuss key features such as Repositories, Services, Aggregates, Bounded Contexts and more. I will explore how Onion Architecture can be used with Domain Driven Design to build up applications in fully portable layers.