Carola Lilienthal

It’s all about the domain, honey ! Experiences from 15 years of Domain-Driven Design

A 'customer' in sales is not the same as in support. Embracing this difference is the key to creating truly modular systems.

It’s all about the domain, honey ! Experiences from 15 years of Domain-Driven Design
#1about 4 minutes

Introduction to Domain-Driven Design and sustainability

The speaker shares her 15-year journey with Domain-Driven Design and introduces the core goal of creating sustainable software architectures that last.

#2about 4 minutes

Achieving sustainable software architecture for long-term productivity

Sustainable architecture enables teams to consistently deliver new features over time by avoiding the structural decay that slows down development.

#3about 3 minutes

Why microservices fail without proper modularity

Splitting a monolithic application into microservices without first establishing clear modules creates a distributed big ball of mud, which is worse than the original system.

#4about 1 minute

Focusing on high cohesion and low coupling

The primary goal of software architecture is to achieve high cohesion within modules and low coupling between them, which is best accomplished through a domain-driven approach.

#5about 5 minutes

How a single shared domain model prevents modularity

A common anti-pattern is a single, shared domain model that creates tight coupling across the entire system, making it impossible to separate into independent modules.

#6about 3 minutes

Using strategic design to create bounded contexts

Domain-Driven Design's strategic design provides a framework for decomposing a system into bounded contexts that align with business subdomains, enabling independent development.

#7about 5 minutes

Finding domain boundaries with domain storytelling

The Domain Storytelling technique helps identify natural boundaries within a business process by mapping out actors, work objects, and activities.

#8about 3 minutes

Comparing domain-driven vs entity-driven architecture

A good architecture is structured around business capabilities (bounded contexts), while a poor, entity-driven architecture creates unnecessary coupling between services.

#9about 2 minutes

Practical heuristics for identifying domain boundaries

Identify potential domain boundaries by looking for one-way information flows, different process rhythms, varying definitions of key concepts, and existing organizational structures.

#10about 4 minutes

Quantifying architectural quality with the Modularity Maturity Index

The Modularity Maturity Index (MMI) offers a concrete metric to evaluate a system's architectural health, which can be analyzed using specialized tools.

#11about 8 minutes

Q&A on DDD, shared models, and microservices

The speaker answers audience questions about avoiding copy-paste models, handling shared functionality, starting new projects, and event-driven architecture.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

Related Articles

View all articles
BB
Benedikt Bischof
Why You Shouldn’t Build a Microservice Architecture
Welcome to this issue of the WeAreDevelopers Live Talk series. This article recaps an interesting talk by Michael Eisenbart who talks about the pros and cons of microservice architecture.‍About the speaker:‍Michael has been working for Bosch as a sof...
Why You Shouldn’t Build a Microservice Architecture
BR
Benjamin Ruschin
What Developers Really Need to Create Great Code Demos
Every developer on earth has, at some point, had another developer to thank for a breakthrough, a success, an aha moment they wouldn’t have had without coming across that blog post, that open-source contribution, that reply on socials or that humble ...
What Developers Really Need to Create Great Code Demos

From learning to earning

Jobs that call for the skills explored in this talk.

Software Architect

Software Architect

doubleSlash Net-Business GmbH
Friedrichshafen, Germany

Java
Azure
Agile Methodologies
Software Architecture
Continuous Integration
+1
Cloud Engineer (m/w/d)

Cloud Engineer (m/w/d)

fulfillmenttools
Köln, Germany

50-65K
Intermediate
TypeScript
Google Cloud Platform
Continuous Integration