User Experience on mobile might not be great yet, but I'm working on it.

Your first time on this page? Allow me to give some explanations.

Awesome Domain-Driven Design

A curated list of Domain-Driven Design (DDD), Command Query Responsibility Segregation (CQRS), Event Sourcing, and Event Storming resources

Here you can see meta information about this topic like the time we last updated this page, the original creator of the awesome list and a link to the original GitHub repository.

Last Update: Dec. 2, 2020, 12:05 p.m.

Thank you heynickc & contributors
View Topic on GitHub:
heynickc/awesome-ddd

Search for resources by name or description.
Simply type in what you are looking for and the results will be filtered on the fly.

Further filter the resources on this page by type (repository/other resource), number of stars on GitHub and time of last commit in months.

Awesome Domain-Driven Design

Helpful development and design advice for .NET developers.

is an approach to software development for complex needs by connecting the implementation to an evolving model. The premise of Domain-Driven Design is the following:

is simply the creation of two objects where there was previously only one. The separation occurs based upon whether the methods are a command or a query (the same definition that is used by Meyer in Command and Query Separation, a command is any method that mutates state and a query is any method that returns a value).

the fundamental idea of Event Sourcing is that of ensuring every change to the state of an application is captured in an event object, and that these event objects are themselves stored in the sequence they were applied for the same lifetime as the application state itself.

is a workshop format for quickly exploring complex business domains.

Contents

A curated list of Domain-Driven Design (DDD), Command Query Responsibility Segregation (CQRS), Event Sourcing, and Event Storming resources

6.53K
848
42d
n/a

Books

A walkthrough of using EventStorming and other modeling techniques to build a CQRS and Event Sourcing-based prototype for a fictional business domain.

Notes by Mark Nijhof from his experiences learning DDD and CQRS from Greg Young. There is an extensive sample project that accompanies this book.

The canonical book that coined the term Domain-Driven Design. Also known as the "Blue Book."

Real examples written in PHP showcasing DDD Architectural Styles.

Domain-Driven Rails describes 11 techniques (from Bounded Contexts to Event Sourcing) that you can use separately and together in new and old Rails apps to achieve better architecture.

Tackle Software Complexity with Domain-Driven Design and F#.

Tangentially connected to DDD, describes the importance of the Ubiquitous Language and working together with domain experts, along with lots of technical details.

A walkthrough of using Domain-Driven Design with Event Sourcing and CQRS using ASP.NET Core and SQL Server in production.

Tackling complexity in the heart of software by putting DDD principles into practice by Alexey Zimarev.

Also a canonical book presenting a top-down approach to understanding Domain-Driven Design. Also known as the "Red Book."

The deepest tutorial and explanation about EventStorming, straight from the inventor.

Methods for managing complex software construction following the practices, principles and patterns of Domain-Driven Design with code examples in C#.

Book that identifies design patterns and coding styles that make lots of security vulnerabilities less likely. (early access, published continuously, final release fall 2017)

This book distills from the experience of leading teams worldwide effective ways to specify, test, and deliver software in short, iterative delivery cycles. Case studies in this book range from small web startups to large financial institutions, working in many processes including XP, Scrum, and Kanban.

Have you had troubles with versioning an Event Sourced system? Just getting into a new Event Sourced system for the first time? This book is the definitive guide of how to handle versioning over long periods of time.

A quick read exploring the core patterns and principles of Domain-Driven Design, as well as strategies for applying DDD in brownfield projects.

Writing Great Specifications is an example-rich tutorial that teaches you how to write good Gherkin specification documents that take advantage of Specification by Example's benefits.

Free eBooks

Provides end-to-end guidance on building monolithic web applications using DDD, ASP.NET Core, and Azure. eShopOnWeb sample

A book about Pythonic application architecture patterns for managing complexity.

To celebrate the anniversary, we've asked prominent authors in the software design world to contribute old and new essays. With contributions by Martin Fowler, James Coplien, Rebecca Wirfs-Brock, Mel Conway, and many more.

A summary of the patterns and definitions of DDD.

Domain Driven Design Quickly is a short, quick-readable summary and introduction to the fundamentals of DDD.

In this three-part series, Vaughn Vernon walks through some common design pitfalls, discusses the pros and cons of various aggregate modeling choices, and provides rules of thumb to guide modeling of aggregates.

Describes three strategies for getting started with DDD when you have a big commitment to legacy systems.

Discover how a Living Documentation can help you in all aspects of your projects, from the business goals to the business domain knowledge, architecture and design, processes and deployment, even if you hate writing documentation.

An introduction to developing microservices-based applications and managing them using containers. eShopOnContainers sample

A 68 pages long free ebook on what DDD, CQRS and event-sourcing are, and how they fit each other.

This magazine is packed with visionary and practical insights, based on personal, business, and customer experiences to support you on your DDD journey

Training Courses

CQRS and Event Sourcing Koans

263
76
2y 32d
MIT

Public Workshops by Eric Evans, Alberto Brandolini, Mathias Verraes, Rebecca Wirfs-Brock, and many more.

Using our video lessons with Eric Evans, author of the original book on Domain-Driven Design (DDD), teach yourself techniques for evolving practical models that improve your software — not just your documents.

These videos include the entirety of Greg Young's DDD, CQRS, and Event Sourcing class.

Vaughn Vernon's online training course.

Online training course from Udi Dahan. Udi's live training schedule can be found here.

Introduction to Event Sourcing and CQRS.

Introduction to DDD, CQRS, and Event Sourcing.

Teaches the fundamentals of Domain-Driven Design (DDD) through a demonstration of customer interactions and a complex demo application, along with advice from Eric Evans.

A descriptive, in-depth walk-through for applying Domain-Driven Design principles in practice.

This course covers DDD analysis patterns helpful in discovering the top-level architecture of a business domain. Architects and developers will find details of implementation patterns such as Domain Model, CQRS, and Event Sourcing.

Introduction to DDD, fundamentals of CQRS & Event Sourcing for Ruby/Rails developers.

Use DDD to decompose a problem domain into manageable parts. Learn how those parts can become the foundation of Reactive Microservices and Reactive Architecture. Free, online, self-paced. Certificate offered upon completion.

This course will discuss the reasons we use CQRS/ES, what benefits it provides us, but also what it will cost us to use. We will see how CQRS/ES can impact the scalability, consistency, and availability of our application.

public and in-house Domain-driven design workshops from foundation to professional level.

Video Collections

Recordings of talks given at DDD Europe.

Searching DDD returns various talks given by Greg Young, Alberto Brandolini, and Dan North, etc.

A YouTube collection of talks given by Alberto Brandolini on Event Storming.

A YouTube collection of various talks given by Greg Young.

Recordings of the talks given at the Explore DDD conference.

A YouTube collection of talks given at KanDDDinsky.

A youtube collection of recorded meetups session from Virtual Domain-driven design

Community Resources

Docs related to https://ddd-cqrs-es.slack.com

30
2
1y 60d
n/a

Advanced Topics in Event Sourcing / CQRS / DDD. PRs welcome. This "project" follows Scala's CoC.

90
4
7m
n/a

Awesome EventStorming

1.24K
90
8m
n/a

An active mailing list and an excellent resource to ask questions and learn fine-grained details about DDD/CQRS.

This group is for discussion of the domain-driven style of designing software, and the book by Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Business Software. Questions and discussion of the book content is welcome here, as well as sharing of experiences applying DDD, and discussions of the topic in general.

The place to discuss Domain-Driven Design, CQRS, Event Sourcing, Model Storming, Hexagonal Architecture, Distributed Systems, Reactive... in the context of PHP.

A subreddit for Ruby developers interested in Domain-Driven Design.

A public discussion group for everybody interested in EventStorming, and related themes.

A slack team about Domain StoryTelling. It is currently invite only, but you can ask @hofstef for an invitation. The homepage is at domainstorytelling.org.

Software Engineering Stack Exchange questions tagged domain-driven-design.

Code Review Stack Exchange questions tagged domain-driven-design.

Stack Overflow questions tagged domain-driven-design.

Questions tagged domain-driven-design.

A Slack team on DDD, event-sourcing, CQRS and wolkenkit.

Online meetups with panel discussions, online collaborations and resource sharing.

Domain-Driven Design Heuristics is a community driven site to document and discuss about Design Heuristics.

Blogs

Helpful development and design advice for .NET developers.

Steve Smith. Pluralsight author and author of DDD Fundamentals course and Microsoft eShopOnWeb sample app.

Weekly curated links related to DDD/CQRS/ES.

Want to learn about CQRS and Event Sourcing? This blog is packed with step-by-step articles to give you a head start.

Being so immersed in finance while still in love with programming, I’m naturally a big fan of Domain-Driven Design by Eric Evans, along with TDD, BDD and agile/XP practices.

I focus on DDD, distributed systems, and any other acronym-centric design/architecture/methodology.

CodeBetter.Com exists in order to help foster awareness of better practices, superior tools, proven methodologies and techniques within the software development community.

Good Enough Software is By Definition Good Enough.

Domain-Driven Design Content on InfoQ.

Inventor of Behavior-Driven Design. Blogs and talks about Event Storming also.

Maintainable code is a business advantage. Creator of Domain Map: The Domain Modeling Tool - Easy And Powerful Domain Driven Design.

Principal Middleware Architect @ Red Hat, open-source enthusiast, committer @ Apache, Cloud, Integration, Kubernetes, Docker, OpenShift, Fabric8.

Pluralsight author. Blogs about software development principles and best practices.

Articles on TechBeacon tagged domain driven design.

Articles under the category Domain Driven Design.

Inventor of Event Storming. Asserting that problems cannot be solved with the same mindset that originated them, Alberto switches perspective frequently assuming the architect, mentor, coach, manager or developer point of view.

Various articles about DDD/CQRS. Implemented Greg Young's SimpleCQRS sample in F#.

Vaughn Vernon understands the unique demands of software development and the challenges you face as you improve your craft in a fast-paced industry.

Various DDD-related articles.

Excellent articles and talks on Domain-Driven Design.

From the creator of NServiceBus.

From the creator of the MassTransit distributed application framework.

From the CTO and co-founder of Petabridge, developers of the Akka.NET Actor Model framework.

Mostly C#, DDD, and Akka.NET.

Ranting and Programming in Java, Clojure, and JavaScript. Articles tagged under cqrs.

Content by Oasis Digital tagged under cqrs.

Adaptech Solutions blog. Our founder, Adam Dymitruk, debated the merits of CQRS with Greg Young before Greg coined the term. Adam and business partner Robert Reppel are among the leading practitioners of event-sourced microservices.

Several articles about DDD from 2013, which are still relevant.

Domain-Driven Design mixed with security, and agile in general. Written as fictional letters to a younger programmer.

Various DDD, CQRS, Event Sourcing related articles from Ruby experts.

DDD series - language, domain, modeling, infrastructure, implementation in PHP

DDD, CQRS, TDD blog posts with code samples in C# .NET

DDD series introduction and talk about how to implement DDD with TypeScript

DDD, BDD, Socio-technical, EventStorming and continuous delivery blogs.

.NET (C#/F#)

This repository contains code that accompanies presentation ASC LAB team gave at meetup about “Creating better code with Domain Driven Design”.

110
23
58d
n/a

Domain Driven Design, CQRS, & Event Sourcing Example using GetEventStore, CommonDomain, NServiceBus, Entity Framework, SQL Server, SignalR

90
32
6y 7m
n/a

An event based Micro ERP

375
121
39d
AGPL-3.0

Sample implementation and comparison of various approaches to building DDD applications. Useful as a baseline to quickly start a DDD dot net project.

73
7
18d
MIT

Event-Sourcing and Domain-Driven Design with F# and EventStore

167
38
6y 11m
n/a

This is a .NET skeleton project to introduce the concepts of Domain Driven Design and loosely coupled layers. You can use this solution as a starting point to build loosely coupled and composable applications where the Domain is at the heart of the project.

146
43
6y 8m
n/a

Examples of implementation CQRS with Event Sourcing - evolutionary approach

106
36
1y 5m
n/a

Email marketing ASP.NET Core MVC and ASP.NET MVC demo app demonstrating CoreDdd and DatabaseBuilder usage

7
2
1y 6m
MIT

Full ASP.NET Core 3.1 application with DDD, CQRS and Event Sourcing concepts

4.42K
1.24K
5m
MIT

Sample ASP.NET Core 3.1 reference application, powered by Microsoft, demonstrating a layered application architecture with monolithic deployment model. Download the eBook PDF from docs folder.

5.26K
2.44K
18d
MIT

Fork of dotnet-architecture/eShopOnContainers in full DDD/CQRS design using my own patterns

98
24
8m
MIT

Examples and Tutorials of Event Sourcing in .NET Core

628
117
32d
MIT

DDD+CQRS+Event-sourcing examples using EventFlow following CQRS-ES architecture. It is configured with RabbitMQ, MongoDB(Snapshot store), PostgreSQL(Read store), EventStore(GES). It's targeted to .Net Core 2.2 and include docker compose file.

98
20
6m
Apache-2.0

This is a personal sand box

657
170
7y 8m
n/a

Event sourcing implementation sample in F#

73
21
6y 70d
n/a

These are the sample Bounded Contexts for C#.NET from the book "Implementing Domain-Driven Design" by Vaughn Vernon: http://vaughnvernon.co/?page_id=168

714
233
5y 6m
n/a

Microsoft patterns & pratices CQRS Journey sample application

1.23K
434
4y 67d
n/a

Full Modular Monolith application with Domain-Driven Design approach.

3.98K
528
18d
MIT

Domain Driven Design (DDD) N-LayeredArchitecture with .Net Core 2

135
51
2y 102d
n/a
4
0
1y 9d
n/a

Real-time FX trading showcase by Adaptive.

1.5K
470
5d
Apache-2.0

Sample .NET Core REST API CQRS implementation with raw SQL and DDD using Clean Architecture.

1.06K
253
4m
MIT

CQRS without plumbing

66
7
7y 29d
MIT

Simple CQRS example

68
6
8y 5m
n/a

Simple CQRS example

1.75K
496
4m
n/a

Implementation of basic Todo app via tastejs/todomvc in C#/Typescript with eventsourcing, cqrs, and domain driven design

115
17
119d
MIT

Example of Domain Driven Design for the game of checkers. There are two files: a scratch file with a series of designs, and a final version.

Haskell

GSD (Get your Stuff Done) | Basic Todo list for demonstrating CQRS/Command Sourcing in Haskell

35
2
1y 4m
Apache-2.0

JavaScript

A collection of DDD sample applications, such as TodoMVC, a geocaching app, collaborative boards etc.

JVM languages

Demo project to implement the CQRS and Event Sourcing patterns in Scala-Akka

58
19
4y 108d
Apache-2.0

A comprehensive Domain-Driven Design example with problem space strategic analysis and various tactical patterns.

1.87K
309
39d
MIT

DDD-CqRS sample v2.0 project that helps you with starting out advanced domain modeling using Spring, JPA and testing

658
198
3y 7m
n/a

Ready to go Domain-Driven Design workshop.

33
13
33d
Apache-2.0

A simplified (in memory) example of Event Sourcing implementation for banking domain.

69
35
3y 7m
n/a

Event Sourcing and CQRS in practice.

214
67
29d
MIT

Sample ES/CQRS application

351
106
2y 6m
n/a

These are the sample Bounded Contexts from the book "Implementing Domain-Driven Design" by Vaughn Vernon: http://vaughnvernon.co/?page_id=168

2.42K
655
5y 6m
n/a

Examples of implementation CQRS with Event Sourcing - evolutionary approach

118
37
4m
n/a

A sample DDD/CQRS project using KOTLIN

123
31
1y 4m
n/a

EventStorming workshop, this is a hands-on workshop. Contains such topics: DDD, Event storming, Specification by example. Including the AWS product : Serverless Lambda , DynamoDB, Fargate, CloudWatch.

158
49
91d
n/a

PHP

DDD CQRS ADR PHP Symfony example

138
15
5m
GPL-3.0

Wishlist, a sample application on Symfony 3 and Vue.js built with DDD in mind

164
12
3y 102d
MIT

Domain-Driven Design in a PHP project using Symfony

486
68
7m
n/a

PHP 7 Version of the cargo sample used in Eric Evans DDD book

746
94
2y 27d
BSD-3-Clause

Domain-driven design e-shop cart demonstration

43
7
110d
n/a

.NET

.NET event sourced domain driven design model via NServiceBus and GetEventStore

249
48
98d
MIT

Lightweight infrastructure for doing eventsourcing using aggregates

236
62
4y 29d
BSD-3-Clause

DDD ValueObject implementation helper

3
0
63d
MIT

Middleware to handling commands over HTTP; typically used in CQRS applications.

46
18
3y 61d
MIT

d60 event sourcing + CQRS framework

218
41
1y 4m
MIT

A set of open-source .NET libraries helping with domain-driven design (DDD) and CQRS

67
5
5m
MIT

CQRS on Windows Azure

24
11
1y 9m
n/a

Async/await first CQRS+ES and DDD framework for .NET

1.68K
358
55d
n/a

A library to facilitate communication between CommandService and QueryService. The Idea is when any event occures in commandService, it should be persisted in QueryService in MongoDb, SqlServer, MySql and PostgreSQL

1
0
8m
n/a

A set of libraries for CQRS and Event Sourcing, with a Domain-Driven Design flavor.

74
20
2y 11m
n/a

.NET Transactional Document DB and Event Store on PostgreSQL

1.39K
255
9d
MIT

Distributed Application Framework for .NET

3.1K
1.04K
3d
n/a

Simple, unambitious mediator implementation in .NET

5.67K
746
56d
Apache-2.0

A CQRS (Event-driven) message router in F#

46
12
4y 9m
Apache-2.0

A persistence agnostic Event Store for .NET

1.46K
332
1y 4m
MIT

The most popular service bus for .NET

1.71K
622
13d
n/a

A set of .NET projection libraries

124
22
2y 12m
BSD-3-Clause

【WIP】️一个基于 .NET Core 2.0 开发的简单易用的快速开发框架,遵循领域驱动设计(DDD)规范约束,并结合CQRS架构提供实现事件驱动、事件回溯、响应式等特性的基础设施。让开发者享受到正真意义的面向对象设计模式来带的美感。

635
147
1y 13d
MIT

Stream Store library targeting SQL based implementations for .NET

3
2
3y 6m
MIT

Event store for Azure Table Storage

312
52
1y 29d
n/a

Making it easier to convert strings to/from .NET types.

36
4
2y 13d
MIT

A lightweight and easy-to-use CQRS + DDD library

95
9
2y 6m
MIT

Toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on .NET & Mono.

ABP

Successor of ASP.NET Boilerplate - ASP.NET Core based application framework to create NLayered, Domain Driven Designed web applications with a microservice focused modular architecture

ASP.NET MVC, Web API and ASP.NET Core based application framework to create NLayered, Domain Driven Designed web Applications implementing best practices.

Build better applications with Dolittle. An Event Sourced, Microservice platform oriented around DDD with developer productivity and simplicity front and center.

Library and tutorial for how to build CQRS/ES applications, including a BDD style testing framework.

Databases

The open-source, functional database with Complex Event Processing in JavaScript.

Business event capture and querying framework.

Complete platform for Event Sourcing & CQRS.

Elixir

Use Commanded to build Elixir CQRS/ES applications

1.21K
157
29d
MIT

Traceable, extendable and minimalist event bus implementation for Elixir with built-in event store and event watcher based on ETS.

528
31
32d
MIT

Event store using PostgreSQL for persistence

687
97
8d
MIT

JavaScript

DDD/Clean Architecture inspired boilerplate for Node web APIs

2.46K
428
10m
MIT

A CQRS, DDD, and event-sourcing framework for JavaScript and Node.js.

JVM

Akka CQRS/ES framework

324
57
2y 5m
MIT

A lightweight flexible development framework for complex business architecture!轻量级业务中台开发框架,中台架构的顶层设计和完整解决方案!

118
26
42d
Apache-2.0

Event sourced aggregates for Java

8
4
4y 5m
MIT

Apache Isis is a framework for rapidly developing domain-driven apps in Java.

The axon framework is focused on making life easier for developers that want to create a java application based on the CQRS principles.

The Lagom Framework is a microservices framework for the Java Virtual Machine, with APIs for the Java and Scala languages. It includes an Event Sourcing/CQRS based persistence module.

A set of building blocks that enable you to code business logic according to the Domain-Driven Design (DDD) approach.

PHP

Infrastructure and testing helpers for creating CQRS and event sourced applications.

1.33K
179
8m
MIT

Enables message driven architecture in PHP and provides building blocks to follow DDD and CQRS principles.

Python

A library for event sourcing in Python.

685
68
6m
BSD-3-Clause

Ruby

Rails Event Store (RES) is a library for publishing, consuming, storing and retrieving events. It's your best companion for going with an event-driven architecture for your Rails application.

Podcasts and Interviews

Conferences

User Groups

Tools

a knowledge-crunching technique that helps the people involved to familiarize themselves with the domain and work out a model that expresses their shared understanding. Available as a print-out template, as well as open-source online tool, WPS Modeler (source).