Guides
Not doctested itself — an index. Every guide it points to is; see
AUTHORING.md if you’re about to write one.
Each guide answers a decision you actually have to make — which field
wants a value object, how a rule refuses, what a query can and cannot
reach — with a real example the suite runs before you read it. If a
guide is wrong, it goes red.
Start at the top if you’re new; jump straight to the one you need if
you’re not.
- Getting started — a domain declared, wired,
booted, and refused, in one sitting.
- Your own domain — write a bluebook of your
own, run it, and deploy it to AWS Lambda.
- Aggregates and value objects —
identity, shape, closed sets, and the trap in nesting them.
- Commands — everything a command may do, everything
it may refuse, and the roster of refusal classes you’ll actually hit.
- Queries and read models — what the
build-time seal catches for you, and the one open question it doesn’t.
- Lifecycles — states, transitions, and what
hecks model_check flags before you ship one wrong.
- Entities — identity and behavior that lives inside
an aggregate, never addressed alone.
- Policies and process managers
— reactions, sagas, correlation, and the depth limit that keeps a
feedback loop from becoming an incident.
- Wiring — the hecksagon and the world: what’s decided
where, and why persistence is never the domain’s problem.
- Schema evolution — a shape change, and
proof that the data underneath it survives. Needs a real Postgres.
- Verification — model_check, fuzz, the corpus,
and which one to reach for at which stage of actually shipping.
- Writing an adapter — the contract a new
persistence or driving adapter has to keep, walked against the
smallest real one.
- Extending hecks — adding a word to the
language itself, and the conformance gates that stop it drifting
from what it says.
- Running a runtime — a second runtime
exists (
rust/); this is how it works and how to run or extend
it: the canonical IR’s exact shape, the dispatch order, and how
the expression grammar given/ensures/invariant compile down
to.
- Behaviors — hand-curated examples of how a domain
is used, in its own vocabulary, run as tests:
hecks operation.run_behaviors, the
rspec shim, and what emits: sees through a real policy cascade.
- Language versioning — how the bluebook
surface itself carries
proposed/admitted/deprecated/retired,
and what hecks language_run.rename does with a rename.
- Projections: Rust and WebAssembly — the
bluebook as the one definition, projected to generated Rust and WASM,
and how that output is held equal to Ruby’s.
- AI-native development — the
storehouse bus and its MCP server: one checked surface an agent works
through, and what its identity check does not do.
- Project status — what works today, what is
experimental or partial, and where the gaps are written down.
Beyond the guides