Skip to content
Matthias Bohlen

iSAQB® CPSA Advanced Level Workshop

Domain-Driven Design

Event Storming, Context Maps, domain models and software architecture. Domain-Driven Design as a three-day intensive workshop with Matthias Bohlen (30 CP for iSAQB® CPSA-A).

days
3
credit points
30
people max.
12
language
DE / EN
Book your seat ↓

In complex software projects, what comes out is often not what was wanted, because domain experts and engineers don't understand each other. What if the business side and the developers spoke the same language, so they'd notice whether they mean the same thing?

What to expect in the workshop

In this Advanced Level module you learn to split a domain into clear parts, develop a language for each of them, and use the DDD patterns to design an application shaped by its domain.

Together we practise each step towards an application-oriented, high-quality architecture on a sample application. You'll see how simple a design can be once you commit to the domain and to the architectural guard rails of Domain-Driven Design.

You'll leave with a solid understanding of the DDD concepts and, just as important, the confidence to actually apply them in your day-to-day work.

iSAQB accredited training

Accredited training for the iSAQB® Certified Professional for Software Architecture, Advanced Level (CPSA-A). It counts for 30 credit points (10 methodical · 20 communicative).

Content

  1. 01

    Domain, model and Ubiquitous Languagedomain, domain model, Ubiquitous Language, module, entity, value object, aggregate, service, factory, repository, domain event

  2. 02

    Knowledge crunching, the way to the modelagile and evolutionary modelling, empowering domain experts, ways to collaborate on a model, tools to capture it

  3. 03

    From model to implementationdomain classes and technical building blocks, how model and code relate, language and code quality

  4. 04

    The model in the application architectureHexagonal Architecture, Command-Query Responsibility Segregation, Layered Architecture, Dependency Injection, Behaviour-Driven Development

  5. 05

    Strategic design 1, cutting models apartsubdomain, Bounded Context, core vs. supporting vs. generic subdomains, Context Map

  6. 06

    Strategic design 2, Context MappingCustomer/Supplier, Open Host Service, Shared Kernel, domain events for communication, Anticorruption Layer, Separate Ways

Who it's for

Software architects and developers who design or evolve systems. You should have experience in IT projects or product development. You don't need to know any particular technology or programming language to follow along and join in. UML helps, but isn't required.

"Event Storming und Strategic Design: DDD mit vielen Teams" mit @mbohlende. #SoftwareArchitectureSummit pic.twitter.com/ysQI35yvNT

Softw. Arch. Summit (@SoftwArchSummit) · 2016-09-26 ↗

An experiment: an Event Storming workshop with 60 people at the Software Architecture Summit in Berlin.

Prerequisites

You should have experience in IT projects or product development. You don't need to know any particular technology or programming language to follow along and join in. UML helps, but isn't required.

What Domain-Driven Design does

Domain-Driven Design (DDD) gives you that language. Domain experts and developers model together in the language of the domain, with predefined kinds of building blocks and patterns. That makes it really clear what the future solution should look like. It simplifies communication and makes the result unambiguous.

Agent day: Domain-Driven Design for you and your agent

After the training, you can add an optional agent day, online or in person. In the training you learn how domain experts and developers work out a model together. On the agent day you bring a third partner to the table: your AI agent. The fundamental thinking stays with you. Your agent is your sparring partner and creates the artefacts. You practise on one example system all day.

  • From workshop chaos to a shared language: your agent sorts the results of an Event Storming workshop and proposes terms, events and aggregate candidates. Which terms become part of the Ubiquitous Language, you decide with the domain experts.
  • The agent as interviewer: your agent asks you about a concrete domain scenario and challenges your assumptions until the gaps in the model are closed. It asks for domain knowledge instead of inventing it.
  • Cutting models: you decide, the agent draws: you decide which subdomains are core, supporting or generic. Your agent drafts Bounded Context Canvases and a Context Map from that, and you review them.
  • From model to code, and back again: your domain model becomes the mould for an agentic software foundry. Your agent casts a Bounded Context from it. If the result is wrong, you fix the mould, not the casting.

At the end of the day you know which modelling work you can delegate and which you never would. Your agent is set up to work in your project from Monday on.

To book the agent day, ask your training partner. For an in-house training, get in touch with me.

Option: consulting to introduce DDD in your company

To go with the training, I've set up an online consulting programme. It makes the first steps with DDD in your own company easy for you and your teams.

You'll find the programme here:

Domain-Driven Design - Consulting | Matthias Bohlen ↗Für mehr Erfolg in der Software-Entwicklung. Persönliches Consulting mit dem DDD-Experten Matthias Bohlendomaindrivendesign.consulting

Delivery

A balanced mix of talks and hands-on exercises. With my guidance, you learn in the group how to bring domain experts and developers together and build a domain model of your application, in clear, simple, precise and shared language.

Online

Since 2020 I've also taught DDD online, with Zoom (or Microsoft Teams if need be) as the video platform and Miro as an online whiteboard. For this I've built a fully equipped video studio with professional broadcast hardware.

Here are a few results from the online DDD trainings:

An Event Storming board for a pizza delivery service: rows of orange event sticky notes from ordering online to paying and rating, grouped into Bounded Contexts such as online shopping, kitchen, logistics, finance and quality assurance, with upstream and downstream links between them.
A big-picture model with the Bounded Contexts drawn in. The board is from a German-language training.
An Event Storming process model on a long board: a chain of events, commands, policies, systems and read models that leads from a delivery order coming in to the pizza being delivered, framed by a situation on the left and an outcome on the right.
A process model of a single Bounded Context. The board is from a German-language training.
An Event Storming design-level model: commands for ad hoc and scheduled deliveries lead into one large yellow aggregate called Delivery, which emits events such as delivery accepted, released and scheduled, with a scheduler policy looping back.
A software design model for a single aggregate. The board is from a German-language training.

Book your seat

In-house for your company? Call +49 170 772 8545 or email mbohlen@mbohlen.de.