A Practical Way to Shape Domains and Boundaries

A simple guide with examples from food delivery and other domains


What EDD Is?(really!!)

Exploratory Domain Discovery (EDD) is a collaborative method for understanding and shaping complicated domains before committing to a design. Instead of jumping into diagrams, tables, or architecture, EDD starts with:

  • shared understanding
  • shared language
  • shared concepts
  • shared rules

The goal is simple:

To discover what actually exists in the domain, what truly matters, and how values move, without premature design.

There are two types of EDD sessions:

(1) Discovery-Time EDD

Used when the business problem is ambiguous or evolving. It focuses on concepts, examples, rules, and uncertainty. This session is about seeing the domain for the first time! be careful!

(2) Design-Time EDD

Design-Time EDD is the part of domain discovery where we stop searching for concepts and start shaping them. At this stage the goal is not to invent new terminology but to understand how the domain behaves, what rules it cannot violate, and where natural boundaries emerge. It is used after the main domain landscape is understood. Now the focus is on:

  • shaping aggregates
  • defining boundaries
  • modeling invariants
  • separating bounded contexts
  • preparing for real architecture decisions

This shaping process becomes dramatically easier when we use a set of heuristics. They serve as a kind of compass that shows which concepts belong together, which should be separated, and which ones should remain thin references rather than heavy compositions.


The Philosophy Behind Design-Time EDD

Design-Time EDD is built on a few key beliefs:

1. Boundaries are more important than diagrams.

Systems fail not because we draw the wrong boxes, but because we draw the boxes in the wrong places.

2. Consistency rules define the architecture.

Wherever a rule must always be true, you likely have an Aggregate Root or a Bounded Context.

3. Value Flow defines separation.

Domains are not shaped by CRUD or data models. Domains are shaped by how value moves:

  • who creates value
  • who transforms it
  • who consumes it
  • what is protected along the way

4. Language creates boundaries.

If two parts of the system use different vocabulary, they should not share the same model.

Design Time EDD comes with several heuristics, which you can find here:

By Masoud Bahrami

The Man Behind Exploratory Domain Discovery

One thought on “Design-Time EDD”

Leave a Reply

Your email address will not be published. Required fields are marked *