# The Event-Sourced Domain Modeling Language Is Now Open-Source

> Source: <https://www.esdm.io/>
> Published: 2026-07-07 08:59:21+00:00

# Event-Sourced Domain Modeling[¶](#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](introduction/what-is-esdm/)## Pick your path[¶](#pick-your-path)

Different visitors want different things. Pick the one that matches what you're here for.

### Modeling for the first time[¶](#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.

-
Install ESDM and write your first model from scratch.

-
Follow a worked example end to end.

### Modeling with AI[¶](#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.

-
A short conversation with a coding agent that produces a lint-clean model.

-
The full vocabulary, one term per page.

-
Focused answers to specific modeling questions.

### Documenting an existing system[¶](#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.

-
Define the parts of the language in your own words first.

-
Look up CLI commands, schema fields, and exact field names.

### Building tools that consume ESDM[¶](#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.

-
The canonical description of every kind in the core schema.

-
Given-When-Then and Domain Storytelling, each with its own schema.

### Already know ESDM, just need a lookup[¶](#already-know-esdm-just-need-a-lookup)

Skip the prose, jump straight to the answer.

## Licensing[¶](#licensing)

ESDM is **open source** under the **MIT license**.

-
Learn how ESDM is provided and what that means in practice.

## Need Support?[¶](#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**.
