Contents

Event Modeling in HCL specs

Contents

Announcing a .em.hcl language spec for Event Modeling.

It lets people document their event models as code.

Yes, there are currently projects like:

So you might ask why HCL?

I see it this way:

For this project, the block form is useful because the source resembles the concepts being discussed.

My personal motivation was:

  • I want a schema in a language I can easily edit by hand;
    • sorry to Mermaid diagrams, but they are NOT human-friendly for event modeling
    • The JSON spec is also not something I am willing to write by hand
  • I want to store it in a git repo
  • And I want it to be rendered as a nice HTML event model that can live on GitLab/GitHub Pages as my system documentation.

Hence, I started this project. Writing Terraform files (HashiCorp created the HCL language) is pretty nice: it provides validation, rules, and syntax highlighting. So I thought:

  • (It’s not yet searching for John Connor) I could ask an AI to vibe-slop me the project based on my inputs.
  • I can use it in my own personal projects as the source of truth: Spec-Driven Development, done as a spec, not Markdown (sorry, .md is not a spec). SysML is a spec, .feature (Gherkin) files are a spec, .hcl, .json, .yaml are specs, but not .md files.

TL;DR: If you’re a software engineer who uses a strongly statically typed programming language, can rely on a compiler to argue with an AI, and prefers explicit domain models (DDD) and specs (BDD), then please try Event Modeling with the .em.hcl language.

Project page is here.