An introduction to Domain Driven Design Rob Allen, January 2024

It started with a book Rob Allen | @rob@social.akrabat.com

Rob Allen | @rob@social.akrabat.com

DDD provides for the Strategic and Tactical Rob Allen | @rob@social.akrabat.com

Domains & Models Rob Allen | @rob@social.akrabat.com

A Domain is something in the real-world Rob Allen | @rob@social.akrabat.com

A Domain is the subject of our project Rob Allen | @rob@social.akrabat.com

A Domain is understood by experts in the space Rob Allen | @rob@social.akrabat.com

A Domain Model is a representation of the Domain Rob Allen | @rob@social.akrabat.com

A Domain Model is an abstraction of reality Rob Allen | @rob@social.akrabat.com

A Domain Model is expressed as diagrams, words, code Rob Allen | @rob@social.akrabat.com

Building domain knowledge Rob Allen | @rob@social.akrabat.com

“We have really everything in common with America nowadays except, of course, language” Oscar Wilde Rob Allen | @rob@social.akrabat.com

Ubiquitous Language Rob Allen | @rob@social.akrabat.com

Ubiquitous Language is The agreed concepts, meanings and terms for the project Rob Allen | @rob@social.akrabat.com

You have to talk! Rob Allen | @rob@social.akrabat.com

Ubiquitous Language is Foundational to implementing Domain Driven Design Rob Allen | @rob@social.akrabat.com

In Domain-Driven Design Everything revolves around Ubiquitous Language Rob Allen | @rob@social.akrabat.com

Observations about creating a domain model Rob Allen | @rob@social.akrabat.com

Focus effort where it matters Rob Allen | @rob@social.akrabat.com

Knowledge Crunching Rob Allen | @rob@social.akrabat.com

Knowledge Crunching Event Storming Rob Allen | @rob@social.akrabat.com

By Henning Schwentner - CC BY-SA 4.0

Knowledge Crunching User Story Mapping Rob Allen | @rob@social.akrabat.com

By Dai Fujihara - CC BY-SA 2.0

Knowledge Crunching Event Modelling Rob Allen | @rob@social.akrabat.com

eventmodelling.org

Managing Domain Complexity Rob Allen | @rob@social.akrabat.com

Bounded Contexts define the boundary for a model Rob Allen | @rob@social.akrabat.com

Bounded Contexts protect the domain model from dilution Rob Allen | @rob@social.akrabat.com

Bounded Contexts are composed into an application Rob Allen | @rob@social.akrabat.com

Context maps Rob Allen | @rob@social.akrabat.com

Tactical design Rob Allen | @rob@social.akrabat.com

Tactical Design Entities, Value Objects & Aggregates Rob Allen | @rob@social.akrabat.com

Tactical Design Storing State Rob Allen | @rob@social.akrabat.com

Tactical Design Services Rob Allen | @rob@social.akrabat.com

Tactical Design Architecture Rob Allen | @rob@social.akrabat.com

To sum up Rob Allen | @rob@social.akrabat.com

“Domain-Driven Design is about creating shared understanding of the problem space that is reinforced ubiquitously via conversations, code and diagrams.” Nick Tune Rob Allen | @rob@social.akrabat.com

Thank you! Rob Allen | @rob@social.akrabat.com

Photo Credits - Event Storming: H Schwentner, https://commons.wikimedia.org/w/index.php?curid=57766348 - Story Mapping: D Fujihara, https://www.flickr.com/photos/49942291@N06/6271934371 Rob Allen | @rob@social.akrabat.com