Skip to content

About this workshop

This workshop will explore Domain-Driven Design (DDD) through practical actions when developing Java solutions.

We will begin with the strategic perspective, covering essential concepts such as domains and subdomains, ubiquitous language, bounded contexts, and context mapping. These foundations will help us understand how to align software models with business needs and design systems that evolve with clarity.

From there, we move into the tactical building blocks—including entities, value objects, aggregates, repositories, factories, domain services, domain events, and application services—to see how business rules are modeled directly in code.

We will also explore how DDD fits into layered architecture (presentation, application, domain, and infrastructure) and connect it with the persistence layer using Jakarta EE, Jakarta Data, and Jakarta NoSQL.

Hands-on labs will guide us through implementing these concepts step by step, applying DDD patterns in real Java code to reinforce both theory and practice.

What we will learn

This workshop will provide a clear understanding of how Domain-Driven Design (DDD) guides both the strategic and tactical aspects of software design. Participants will learn how to connect business language to code and how to implement domain models effectively in Java. By combining theory with hands-on coding, you will see how DDD patterns translate directly into maintainable and scalable applications.

Objectives

  • Understand the difference between strategic DDD (domains, subdomains, ubiquitous language, bounded contexts, context mapping) and tactical DDD (entities, value objects, aggregates, repositories, factories, domain services, domain events, and application services).
  • Recognize how DDD fits into a layered architecture and supports clean separation of concerns.
  • Explore how persistence can be handled using Jakarta EE, Jakarta Data, and Jakarta NoSQL.
  • Apply DDD patterns step by step in hands-on labs, reinforcing theory through practice.

Takeaways

By the end of the workshop, you will: - Be able to identify and model business domains and subdomains. - Use a ubiquitous language to improve communication between developers and domain experts. - Implement DDD tactical patterns directly in Java with confidence. - Understand how layered architecture supports DDD. - Gain practical experience with persistence using Jakarta EE and Jakarta NoSQL. - Walk away with code examples and labs you can adapt to your own projects.


Last update: 2025-09-05