We’ve done our best to do Domain Driven Design with the standard enterprise Java toolset: Java, Spring, Java Persistence API (JPA), and a relational database (RDB). While this has been a successful stack for us in developing enterprise applications, we’ve encountered problems doing DDD well in this environment. In this series of essays, we look at some of the difficulties we’ve had, and consider ways to improve our situation. We provide advice for doing DDD with the given toolset. And we look ahead to how we might do DDD better with different tooling - specifically, replacing Java with Scala, and RDB with a document database such as MongoDB.
The ideas in this series has inspired and informed the development of longevity, a Persistence Framework for Scala and NoSQL with a Domain Driven Design Orientation. All of the non-JPA specific advice from this series is applied there. Longevity has both MongoDB and Cassandra back ends, and is ready for you to use today.
This series contains fourteen essays plus an acknowledgments section. Essays range in length from about 800-1400 words. Here’s the catalog: