Awesome Domain-Driven Design Awesome

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

Check out my blog and weekly DDD newsletter or say hi on Twitter!

Domain-Driven Design (DDD) 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:

The term was coined by Eric Evans in his book of the same title.

Command Query Responsibility Segregation (CQRS) 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).

Event Sourcing 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.

Event Storming is a workshop format for quickly exploring complex business domains.

Contents

Books

Free eBooks

Training Courses

Video Collections

Community Resources

Blogs

Sample Projects

GO

.NET (C#/F#)

Haskell

Idris

JavaScript / TypeScript

JVM languages

PHP

Libraries and Frameworks

GO

.NET

Databases

Elixir

JavaScript / TypeScript

JVM

PHP

Python

Ruby

Podcasts and Interviews

Conferences

User Groups

Tools

License

CC0

To the extent possible under law, Nick Chamberlain has waived all copyright and related or neighboring rights to this work.