An All Code Introduction to Domain Driven Design and Hexagonal Architecture

Track: Tools and techniques
Abstract
Domain Driven Design is designed for implementing complicated business logic and is an excellent fit for microservices development.

Domain Driven Design provides a repeatable, logical structure that makes implementing business logic easier, faster, and more maintainable. Hexagonal Architecture (or Ports and Adapters) excels at producing loosely coupled, interchangeable components that fit well with DDD.

In this presentation I will introduce the Domain Driven Design and dive into the DDD concepts of Aggregates, Repositories, Value Objects, Services, Ubiquitous Language, Adapters, and Shared Kernels. I will also build an application using these patterns and leverage Hexagonal Architecture for easy extensibility. Testing will of course be included.

You will leave this presentation with a basic knowledge of Domain Driven Design, how to structure and test your application to implement DDD and how to use Hexagonal Architecture to extend your applications.

No slides; just live code.
Jeremy Davis
Jeremy is a Principal Architect at Red Hat. He helps Red Hat's customers to design and deliver applications, works with Red Hat engineers to create great products, and occasionally speaks at conferences. Before joining Red Hat he wrote a lot of code in C, C#, Groovy, Java, JavaScript, Objective-C, Perl, PHP, Python, Ruby, Visual Basic; mostly Java. He currently co-lead Red Hat’s Application Development Community of Practice, and used to lead Red Hat's Microservices Community of Practice and the Business Rules and Workflow SME group. He has recently spent a lot of time with Quarkus and Kubernetes. He recently acquired a Marshall amp after relying on Fenders for years.