We’ve observed the 10th anniversary of “domain-driven design,” but 10 years later, how are we applying these concepts in the Java world? Java EE 7 leveraged the Java platform to an outstanding level, enabling our code to be clean, efficient, and testable—yet most Java EE applications out there are still structured in a procedural way. This session takes a deep look at how Java EE 7 specs such as JPA, JSF, EJB, and CDI can work together with open source libraries such as Guava, Spring Data, and Query DSL to provide a rich domain model definition. The presentation revisits how to apply DDD concepts with type safety, immutability, and proper encapsulation and do some live coding showing how these can be implemented step-by-step with common design patterns and Java 8.