noddde

noDDDe

A TypeScript framework for Domain-Driven Design, CQRS, and Event Sourcing

noDDDe is a TypeScript framework for building business applications using Domain-Driven Design (DDD), Command Query Responsibility Segregation (CQRS), and Event Sourcing patterns.

It provides a declarative, type-safe way to express domain aggregates using the functional Decider pattern — no base classes, no decorators, just typed objects and pure functions.

Key Principles

  • Pure functions over class hierarchies — Aggregates are objects with handler maps, not classes with methods
  • Type safety via mapped typesDefineCommands and DefineEvents build discriminated unions from simple payload maps
  • The Decider patterninitialState + commands (decide) + apply (evolve)
  • Infrastructure injection — Dependencies are function parameters, not imports; testable by default

Choose Your Path

New to DDD / CQRS / Event Sourcing?

Start with the foundational concepts:

Want to build something?

Jump into the hands-on guides:

Know the patterns?

Go directly to the reference:

Understand the design

Learn why noddde is built the way it is:

On this page