noddde

noDDDe

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

noDDDe is a TypeScript framework for Domain-Driven Design, CQRS, and Event Sourcing. Aggregates, projections, and sagas are expressed as typed bundles paired with pure functions for state transitions.

The shape: every domain concept is an object with handler maps. State transitions are pure functions of an event and a previous state. Infrastructure is passed to handlers as a parameter. Types flow from a single Def bundle, end to end.

Start here

The fastest path to understanding noddde is to read in this order:

  1. Why noddde — 90 seconds. Compares to NestJS CQRS, hand-rolled, Effect, Wolkenkit. Tells you when noddde is the wrong choice.
  2. Quick Start — a complete bank-account aggregate, working end-to-end. Copy, run, see it work.
  3. Core Concepts — the four ideas the rest of the docs assume.

That is the whole on-ramp. Everything else in the sidebar is reference.

Already familiar with the patterns?

If you have shipped CQRS+ES in TypeScript before, jump straight to:

Looking for a real-shaped example?

The hotel booking sample exercises more than 90% of the framework: 3 aggregates, 3 sagas, 3 projections, Fastify HTTP, Drizzle/SQLite persistence. It is the closest reference to a production codebase.

On this page