Build better software

Domain-Driven Design

Discovering Domain-Driven Design ebook cover by Matthew Brookson

Is this book for me?

  • I am building complex domain logic and processes
  • I am working in a large team or with many teams
  • I am struggling to communicate with key stakeholders in a project
  • I am working with a codebase which is hard to maintain
  • I am building complex distributed systems

If you identify with any of the above, keep reading 👇

What’s it all about?

As a fellow developer you probably love learning to master the craft and want to write better software.

Since being introduced to domain-driven design it's provided me a new perspective and enabled me to model complex concepts and build higher quality software than ever before.

This book is an attempt to share my passion and knowledge for building quality software using domain-driven design principles. It aims to enable you to start implementing DDD concepts into your software engineering.


  • Intro
  • What is domain-driven design?
  • Domains and Subdomains
    • Domains
    • Subdomains
  • Domain experts
  • What is a domain model?
    • Grouping concepts into domains
    • Modelling challenges
  • Ubiquitous language
  • Bounded contexts
    • Consistency
    • Summary
  • Entities and value objects
    • Representing the domain model
    • Entities
    • Value objects
    • The value of value objects
  • Aggregates
    • Discovering aggregates
    • E-commerce example
  • Domain events
  • Coupling vs Cohesion
    • Coupling
    • Cohesion
  • Tell, don’t ask
    • Can a person put socks on?
    • Why? Why? Why?
    • Breaking the rules
    • Privacy first
    • Enforcing invariants
    • Testing
  • CQRS
  • Event sourcing
  • Application architecture
    • Clean architecture
    • Vertical sliced architecture
    • Event Driven Architecture
    • Microservices
    • Monolith with boundaries
    • Evaluating architecture
  • Closing thoughts
  • Further reading
    • Overview
    • Bounded contexts
    • Aggregates
    • Value objects
    • Ubiquitous language
    • Application architecture

What will I get?

You'll get a ~60 page PDF ebook that's been designed to be easily consumable. It's packed with a condensed introduction to domain-driven design, covering theory and communication concepts through to code specifics and includes TypeScript examples.

Still not sure? Download a free sample(No email required)

When can I get it?

Discovering Domain-Driven Design is available to purchase now!