ESDM CLI WhyCapabilities Install →
Products / Modeling / ESDM CLI
Modeling

ESDM CLI

Your domain model, next to your code.

The ESDM CLI checks, explores, and documents event-sourced domain models written in ESDM – Aggregates, Events, Commands, Process Managers, Read Models, and Context Mappings as YAML files, reviewed in pull requests like any other code.

Open source under the MIT license, with binaries for macOS, Linux, and Windows.

License
MIT License
Runs on
Linux, macOS, Windows
ESDM CLI
Why ESDM CLI

The model drifts the moment it leaves the room.

Teams share the vocabulary of Domain-Driven Design and Event Sourcing, but not their artifacts – slide decks, whiteboard photos, and wiki diagrams that nobody trusts six months later. ESDM gives the model a first-class home – files next to the code, checked by a linter, in a format every tool can read.

  • Drift becomes visible. A pull request that renames an Aggregate has to update the model, or the linter fails the check.
  • Gaps show up early. An Aggregate without Events, a Command nobody issues, a Read Model fed by no projection – the linter flags them.
  • Built for tools, and for AI. A fixed schema and a named vocabulary, plain enough for LLMs to read and write.
apiVersion: schema.esdm.io/core/v1
kind: command
name: acquire
scope:
  domain: library
  boundedContext: cataloging
  aggregate: book
data:
  type: object
  properties:
    title: { type: string }
    author: { type: string }
    isbn: { type: string }
  required: [title, author, isbn]
publishes:
  - acquired

A Command in ESDM – what it acts on, the data it carries, and the Event it publishes. esdm lint checks it against the schema and the modeling rules.

Capabilities

One model, many uses.

Every capability links to the part of the documentation that explains it.

Checking

A model you can trust

  • LintingStructural and modeling errors, with their locations and the rule that flagged them.Learn more
  • Checks in CIA fast check that fails a pull request when the model and the code drift apart.Learn more
  • Editor supportAutocomplete and validation against the schemas while you type.Learn more
  • Schema updatesKeep the schemas in your project in step with the binary.Learn more
Exploring

The model at a glance

  • ViewsA hierarchical summary, from the Domain down to the Events and Commands.Learn more
  • GlossariesThe ubiquitous language of every Bounded Context, as Markdown.Learn more
  • DocumentationOne Markdown page per element, with its relationships linked.Learn more
Extensions

Beyond the core

  • Domain StorytellingCapture discovery stories as documents of their own, validated by the same toolchain.Learn more
  • Given-When-ThenConcrete behavioral scenarios alongside the model, in a format domain experts know.Learn more
Integration

An open format

  • Modeling with AILet a coding agent draft a model, or extract one from existing code.Learn more
  • Building toolsValidators, generators, and IDE plugins build against the same fixed schema.Learn more
Talk to us

Planning something bigger?

Whether you need a quote, support, or a second opinion on your architecture – we are happy to help.