The Event-Sourced Domain Modeling Language Is Now Open-Source The Event-Sourced Domain Modeling (ESDM) language, which describes event-sourced domains as YAML and supports Domain-Driven Design, CQRS, and Event Sourcing, has been released as open-source under the MIT license. The language ships with tools to manage domain models and is available as pre-built binaries for macOS, Linux, and Windows. 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 .