Event-Sourced Domain Modeling
Skip to content
Initializing search
Licensing
Need Support?
Introduction
Getting Started
Concepts
Modeling Guides
Recipes
Reference
Extensions
Reference
Given-When-Then
Reference
Privacy Policy
Legal Notice
Licensing
Need Support?
Event-Sourced Domain Modeling¶
Welcome to the official documentation for ESDM – the Event-Sourced Domain Modeling language.
ESDM describes event-sourced domains as YAML and ships with the tools to manage them. The language captures the building blocks of Domain-Driven Design , CQRS , and Event Sourcing – Aggregates, Events, Commands, Process Managers, Read Models, Context Mappings, and the rest – along with the artifacts that surround modeling work, such as Domain Storytelling discoveries and Given-When-Then specifications.
Whether you model by hand, build tools that consume domain models, lean on AI to model or to analyze code, or simply want a written record of an event-sourced system you already built, this documentation is the starting point.
Get ESDM
ESDM ships as pre-built binaries for macOS , Linux , and Windows . Download and install ESDM . New to ESDM? Start with What is ESDM .
Pick your path¶
Different visitors want different things. Pick the one that matches what you're here for.
Modeling for the first time¶
You're learning Domain-Driven Design or Event Sourcing, or you want to capture a model from scratch. Start with the basics and walk through a guided example.
Getting Started
Install ESDM and write your first model from scratch.
Modeling Guides
Follow a worked example end to end.
Modeling with AI¶
You want an LLM to help you draft a model, or to extract one from existing code. ESDM's YAML is plain enough that LLMs can read and write it directly, and the Concepts pages give the model exactly the vocabulary it needs.
Your First Model with AI
A short conversation with a coding agent that produces a lint-clean model.
Concepts
The full vocabulary, one term per page.
Recipes
Focused answers to specific modeling questions.
Documenting an existing system¶
You already have an event-sourced system and want to capture it as a model. Start with the vocabulary and the schema reference – they describe what every kind of artifact looks like in ESDM.
Concepts
Define the parts of the language in your own words first.
Reference
Look up CLI commands, schema fields, and exact field names.
Building tools that consume ESDM¶
You're building tooling – validators, generators, transformers, IDE plugins – that interoperates with ESDM. The schema reference is the contract you build against, and the extensions show how the format scales beyond the core.
Reference: Core Schema
The canonical description of every kind in the core schema.
Extensions
Given-When-Then and Domain Storytelling, each with its own schema.
Already know ESDM, just need a lookup¶
Skip the prose, jump straight to the answer.
CLI Reference
Core Schema Reference
Extensions
Licensing¶
ESDM is free of charge , including commercial use.
Licensing Details
Learn how ESDM is provided and what that means in practice.
Need Support?¶
If you or your team need help designing, integrating, or scaling an event-sourced system, we're happy to assist. Just reach out to hello@thenativeweb.io .