Skip to content

tdonker/domain-driven-design-links

Repository files navigation

The philosophy of Domain-Driven Design

Domain-Driven Design is a philosophy and approach to developing software, it's not an architecture. Strategic DDD helps us of getting out of the big ball of mud (logical and not physical coupling). It helps us in identifying our business capability boundaries (bounded context) using an ubiquitous language (a language that is shared and understood in one part of the business) as well identifying and naming the relationships (context mapping) that our bounded contexts (also teams) have between each other. By understanding the relationships between our contexts, it aids in making decisions about how are we going to model our software.

It’s a mindset: the application Design is Driven by the business Domain. There are no steps of how to do DDD and there isn’t a formula you can learn. What you can learn from Eric Evans or other DDD experts is how they approached a problem, but nobody can give you a sure recipe of how to do things.

updates:
14.04.2024: Addition of Bounded Context examples subsite
05.01.2024: correction of link references
24.11.2023: XTI XTI Domain-Driven Design - Een pragmatische gids ebook pdf (Dutch)
14.03.2023: Added Hands-On Domain Driven Design with .NET Core pdf (Zimarev)
28.01.2023: Rethinking Bounded Contexts (Florian Sauter)
27.12.2022: Continuous Architecture: Case study
30.11.2022: About Team Topologies and Context Mapping (Alberto Brandolini)
29.09.2022: Build Business Capabilities, not APIs (Nial Darbey)
11.09.2022: Microsoft - Microservices architecture e-book
02.09.2022: Irfan Muhammad - Microservices – Design and Implementation
18.07.2022: Added DDD Europe 2022 links at bottom
21.05.2022: Going “Events-First” for Microservices with Event Storming and DDD
14.05.2022: The highly desirable way of context communication is event-based
29.04.2022: Implementing Domain-Driven Design for Microservice Architecture (Ernese Norelus)
26.04.2022: Applying Domain-Driven Design and Patterns (Jimmy Nilsson)
11.04.2022: Patterns on Deriving APIs and their Endpoints from Domain Models
09.04.2022: The Art of Discovering Bounded Contexts by Nick Tune (YouTube)
22.03.2022: Added a subset of Dutch sites
27.02.2022: Gateway Interchange Context on YouTube - Nick Tune 2019
22.01.2022: What is Microservice Architecture - Kenneth Lange 2017
08.01.2022: The Bounded Context Canvas - DDD crew 2021
04.01.2022: Canonical Data Models - Gateway Interchange Contexts Nick Tune 2019
04.01.2022: Bounded Contexts and Canonical Data Models - Michael Plöd 2016
13.11.2021: Bounded contexts and subdomains - Robert Basic 2018
05.10.2021: Context Maps - a deep dive - Michael Plöd - KanDDDinsky 2019
28.09.2021: Strategies for getting started with DDD - Eric Evans 2013
26.09.2021: The repository cares about storing/retrieving objects from the db

Domain Driven Design

Theory books and pdfs


In-depth definition and meaning


Theory links


DDD in practice


Bounded Context


Clues for identifying Bounded Contexts


Bounded Contexts and Microservices


Bounded Contexts and Domain Models


Published language & Ubiquitous language


Bounded Contexts, Canonical Data Models and Interchange Contexts


Relationship Bounded Contexts and Subdomains


Context map: communication between Bounded Contexts


Event Driven Architecture: preffered solution for communication between Bounded Contexts


Difference between Entities and Value Objects


Repositories


Orchestration and Choreography


Strategic and Tactical patterns


DDD concepts and REST equivalents


DDD, microservices and Kafka


Microservice Architecture: Benefits and Drawbacks


Awesome Github.com sites


DDD slack community


ESB versus Microservices


Business Logic and Domain Model

  • 'We would design a pure domain model, untainted by theinfrastructure details, that captures the Ubiquitous Language and implements the necessary business logic'. (p145) (by Vaughn Vernon 2013): Implementing Domain-Driven Design
  • 'The logic that should be in a domain object is domain logic - validations, calculations, business rules - whatever you like to call it.'. (by Martin Fowler 2014): Implementing Domain-Driven Design
  • 'The main point of DDD is to identify relevant domain behaviour, which means getting to know plenty of domain rules.'. (by Sapiens Works 2017): How To Handle Business Rules in Domain Driven Design
  • 'As a result, the business logic will be in the domain-model, with a lot less duplication as a result'. (by Albert Starreveld 2020): Domain-Driven Design in a nutshell
  • 'This principle is similar in Domain-driven design (DDD), where each Bounded Context or autonomous subsystem or service must own its domain model (data plus logic and behavior)'. (p28) (by Microsoft 2022): Microservices architecture e-book

Team Topologies (Skelton & Pais)


Case studies


DDD Europe 2022

About

A curated collection of useful links and resources related to Domain-Driven Design

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published