0083. Names for the new constructs: the name-clash table is accepted

0083. Names for the new constructs: the name-clash table is accepted

Status

Accepted. Row: DOM-29. The handler words (DOM-05) are in ADR-0079. No row is open.

Date

2026-10-11

Deciders

operator (Saulo Vallory), 2026-10-11.

Context

The new constructs reuse words that already mean something: policy, service, event, app. The rule is obvious names: the word a user would guess, one word per meaning.

Decision

The study’s name-clash table (section 5) is accepted for the port, with the words that rulings changed:

Word Resolution
policy Authorization only. The study’s react is publish plus a listener; a read-model handler is apply, a command runner process (ADR-0079)
repository A pattern; no construct (ADR-0080)
app The file kind is surface (ADR-0077); “application” stays the user’s program
service A domain service as Vernon defines it (ADR-0078); the dependency keyword is uses
command A serialised request to run a write action (ADR-0079)
event and change A change is a row write; an event is a declared domain event
aggregate DDD’s; Ash’s aggregates are rollups
context The action context; write “bounded context” in full
domain One bounded context’s model
adapter and port Name nothing “port”
step The do step; no step files (ADR-0082); the workflow word is decided with workflows
on on=:create and on:load only; no on for reactions
check Mesh validation and named checks; Hyper’s checks map to checks, policies and named checks
value concept (ADR-0080)

Options considered

Keep the DDD names, rename to avoid every clash, or accept a clash where the shared word is accurate (chosen, per row).

Trade-off analysis

Users guess one word per idea; where DDD’s word clashes with Mesh’s own older word, Mesh’s own word stays, and the new word takes the obvious name of the new thing.

Consequences

The vocabulary mapping needs the clash table for Ash users once the constructs ship. No existing record is superseded.

Action items

  • Add the aggregate, concept and service rows to the vocabulary mapping when built.