awesome-ddd README

The project's README from github.com/heynickc/awesome-ddd. As one markdown file: README.md.

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.

awesome-ddd (heynickc/awesome-ddd)

Searching Database…

What is this?A curated list of resources for Domain-Driven Design (DDD), CQRS, Event Sourcing, and Event Storming, covering books, free ebooks, training courses, video collections, sample projects, libraries/frameworks, podcasts, conferences, and tools.
Is this a tutorial or an index of other resources?It's an awesome-list: an index of external resources (books, courses, videos, sample projects, libraries) organized by category, not original teaching content itself.
How is the list organized?It's split into sections like Books, Free eBooks, Training Courses, Video Collections, Community Resources, Sample Projects (by language: Go, .NET, Haskell, JVM, JS/TS, PHP), Libraries and Frameworks, Podcasts, Conferences, User Groups, and Tools.
Where should a beginner start?The README highlights the canonical 'Blue Book' (Domain-Driven Design: Tackling the Complexity at the Heart of Software) and 'Domain-Driven Design Distilled' as good starting points before diving into more detailed texts like Implementing Domain-Driven Design.
Are entries vetted or just links?Each entry is a short curated description rather than a deep review, so quality depends on the linked external resource; the list itself doesn't test or rate the content beyond a brief summary.
Who is this list for?Developers and architects wanting to learn or deepen their understanding of DDD, CQRS, Event Sourcing, and Event Storming, across multiple languages and ecosystems (.NET, JVM, Go, PHP, JS/TS, Ruby, Python, Elixir).
What exactly is Domain-Driven Design according to the list?DDD is an approach to software development that focuses on the core domain, models complex designs around that domain, and fosters collaboration between technical and domain experts to refine a shared conceptual model.
What is CQRS as described here?CQRS is the separation of an object into two: a command object (methods that mutate state) and a query object (methods that return values), based on the Command-Query Separation principle.
What is Event Storming?Event Storming is a workshop format for quickly exploring complex business domains, pioneered by Alberto Brandolini, with dedicated courses and talk collections linked in the list.
Does the list include practical sample projects?Yes, it links to sample DDD/CQRS/Event Sourcing projects grouped by language and ecosystem, including Go, .NET (C#/F#), Haskell, Idris, JavaScript/TypeScript, JVM languages, and PHP.
Creator
heynickc
Size
0.7 MB
Stars
12.4K
Updated
CommitAug 26
Age
10y
Commits · 90 Days