Information regarding the coronavirus / COVID-19
To curb the current coronavirus pandemic, our training courses are currently only available as online-only sessions until further notice.

This ISAQB IMPROVE module is an exception, because we plan the training as a hybrid event. Please let us know which format you prefer when you register (online or on site).

For inquiries, please contact us by phone at 040-229499-0 or by email at

It’s All About the Domain
Technology is an important aspect for every software system. Being a software architect or developer, we feel comfortable with technology but must not forget that it is only a means to an end. The purpose of a software system is to assist the user in his work. Domain-driven design (DDD) helps us to build such systems. Therefore, the software is designed in a way that reflects the domain.

A Common Language Facilitates Collaboration
The results of software development projects are often not what the users imagined. Communication problems between experts and developers are not revealed until the usage of the software which often is too late. To avoid this issue, we use DDD. Experts and developers deliberately develop a common terminology to form the basis for the domain-driven architecture.

Software of High Quality Due to Coherent Patterns
Not only do users and developers have misunderstandings, but also the developers themselves have different ideas about the architecture of the future system. To ensure high quality, DDD offers predefined patterns such as Entity, Value Object, Aggregate, Service etc. These DDD patterns simplify communication between developers and lead to a coherent architecture.

Looking Beyond the Boundaries of Your Own System
Terminology and patterns not only work for one system, but also in large software projects with several development teams or separately developed microservices. Concepts such as Bounded Context, Context Map, Shared Kernel, Domain Events, Anticorruption Layer, etc. are used at this point.

What is Covered in This Workshop?
You will learn how to develop a terminology, how to use domain-driven design patterns, and how to establish a connection to other applications. This is required to design an application in context guided by the domain. Talks, discussions, and exercises will be part of the workshop to deepen the learned knowledge in practice. We will use an example domain to practice making an architecture of high quality. You will see how simple a design can be if you understand the domain and the architectural guidelines of domain-driven design.

Register Now

Core Content

  • Overview: What is Domain-Driven Design?

  • Learning the Domain: Event Storming

  • Strategic Design: Split the Domain, Define Models
    Bounded Context, Subdomain, Context Mapping with Context Map, Customer-Supplier-Teams, Shared Kernel, Open-Host-Service and Published Language

  • Ubiquitous Language
    Develop a common language to use consistently; collaboration techniques such as Domain Storytelling and glossary

  • Developing the Domain Model
    Domain-Logic patterns and domain-specific items as the starting point for the model

  • Tactical Design – Express the Model in Software
    Building Blocks: Entity, Value Object, Aggregate, Service, Factory, Repository, Domain Event

Advanced Topics

  • Maintain the Local Consistency Within the Model
    Anticorruption-Layer vs. Conformist, Separate Ways, Integration

  • Model in the Application Architecture
    Modules, Layered Architecture, Hexagonal Architecture

  • Implementing the Building Blocks

  • Design by Contract

  • Command Query Responsibility Segregation (CQRS) and Event Sourcing

  • Microservices



September 13–15, 2022 German (booked up)
November 15–17, 2022 German



Online Training

Early Bird (3 months before start date)

Max number of participants per date: 12 persons

*) Prices plus German VAT

We are looking forward to your request!

All trainings are held in German. Please let us know if you are interested in trainings in English.

    WPS-MailTwitteriSAQB WebsiteConferenceOther