2. 1 Make sense of requirements
2 Build a (relational) data model
Try
again
3 Identify relevant tasks and data tables
Build a user interface4
Close to what users wanted but…5
3. DDD
CQRS
Event Sourcing
Relational
NoSQL
Design and Implementation
CQRS
w/o
Domain Model
w/o
Event Sourcing
AnalysisDOMAIN
Ubiquitous Language
Bounded Contexts
Persistence
POLYGLOT
PERSISTENCE
w/o
Relational
w/o
all NoSQL flavors
Analysis
4. Ubiquitous Language
Natural language,
not artificial
Comes out of
interviews and
brainstorming
Iteratively
composed and
refined along the
way
Unambiguous and
fluent
Meets
expectations of
domain experts
Meets
expectations of
technical
people
5. “Use the model as the backbone of
a language.”
Eric Evans
Discovering the ubiquitous language
leads you to understand the business domain
in order to design a model.
PS: Any model that works.
Not necessarily an object-oriented model.
7. Understanding the domain in order to build the model means
Understanding type and shape of the data
being used
How data is aggregated in the specific
business domain
How to persist that data
Impact of data store and data storage API on
overall performance in read and write