Model aggregates, events, commands, and bounded contexts as YAML instead of diagrams.
Validate event-sourced domain models with an opinionated linter before writing code.
Review domain model changes in pull requests alongside code changes.
| thenativeweb/esdm | adisbladis/nix-cache-beacon | aspecttaleadapter/adobe-lightroom-classic-15-3-full | |
|---|---|---|---|
| Stars | 25 | 25 | 25 |
| Language | Go | Go | Go |
| Setup difficulty | easy | hard | easy |
| Complexity | 3/5 | 4/5 | 1/5 |
| Audience | developer | ops devops | general |
Figures from each repo's GitHub metadata at analysis time.
Full usage docs live outside this repo at esdm.io, this README only covers building from source.
esdm is a tool for describing event-sourced software systems using plain YAML files instead of code or diagrams. Event sourcing is a way of building software where every change to your data is recorded as a sequence of events, rather than just storing the current state. With esdm, you write down the pieces of that design, such as aggregates, events, commands, and bounded contexts, as YAML documents that sit alongside your actual codebase. A big part of the value here is the built in linter. Once you have written your YAML model files, esdm checks them against a set of opinionated rules to make sure the model is consistent and well formed. Because these files live in the same repository as your code, they can be reviewed and updated through normal pull requests, the same way you would review a code change. This means the design of your event-sourced domain stays visible and versioned instead of living only in someone's head or in a separate diagramming tool. The project itself is written in Go and is built from source using a simple make command, which produces the esdm binaries for all the platforms it supports and places them in a build folder. There is also a separate make command for running the project's own quality checks. The README for this repository is intentionally short. Full documentation, including installation steps, a getting started guide, explanations of the core concepts, modeling guides, and a complete reference, is hosted separately at esdm.io. Anyone wanting to actually use esdm to model a domain would need to follow that external documentation rather than relying on this repository alone. This tool is aimed at developers who are already familiar with, or are learning, event-sourced architecture and want a lightweight, text based way to capture and validate their domain models before or alongside writing code. It is not a general purpose programming language, but a modeling and validation layer for one specific architectural style.
esdm lets you describe event-sourced software designs as YAML files, then validates them with a linter so they can be reviewed in pull requests.
Mainly Go. The stack also includes Go, YAML, Make.
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.