Skip to content

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.

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.

  • 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.

Licensing

ESDM is free of charge, including commercial use.

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.