Skip to content

Domain Driven Design Model

Jaafar Alkaales edited this page Aug 5, 2024 · 2 revisions

Event Storming

Domain Driven Design - Event Storming

Strategic Design

Defines high-level structure, identifies bounded contexts, and maps their relationships to align business goals with technical implementation. Within the context of this project, the strategic design defines the Warehouse, Bar, Drop Point and User Management contexts and their interactions.

Problem Space

The problem space breaks down the domain into sub domains, which later will be the bounded contexts within the solution space.

Domain Driven Design - Sub-Domains

Solution Space

The Solution Space involves various strategies and patterns for designing solutions within a given domain. It involves defining APIs, workflows, and interfaces for stock management, order processing, and returns of empty bottles, ensuring seamless communication between the Warehouse, Bar, and Drop Point contexts.

Bounded Contexts

Part 1 :

Domain Driven Design - Solution Space


Bounded Contexts - Context Mapping

Part 2 :
Domain Driven Design - Context Mapping - Part 2 Part 3 :
Domain Driven Design - Context Mapping - Part 3

Part 4 :
Domain Driven Design - Context Mapping - Part 4
Link to Published Language Document

Tactical Design

Domain Language with DDD specific stereotypes

Domain Driven Design - Domain Language

Aggregate Roots

an aggregate root is the main entity that acts as the entry point for accessing and modifying a group of related entities. Each aggregate root ensures consistency within its boundaries.

Aggregate Roots - Warehouse

Domain Driven Design - Tactical Design - Warehouse

Aggregate Roots - Beverage

Tactical Design - Beverage

Aggregate Roots - Bar

Tactical Design - Bar

Aggregate Roots - Order

Tactical Design - Order

Aggregate Roots - Drop Point

Tactical Design - Drop Point

Aggregate Roots - User

Tactical Design - User
#DDD repositories Domain Driven Design - Domain Repositories