Skip to content

Evolutionary Model reference

The Evolutionary Model is modelARch’s normalized representation of product intent. The canonical machine format is versioned JSON; author it through modelARch surfaces rather than editing exported JSON by hand.

SdmModel
├── metadata: id, name, description, version, timestamps
├── domain
│ ├── areas and domain objects
│ ├── queries, errors, modules
│ ├── infrastructure, brand, layout, locale
│ └── shared types
├── boundedContexts and contextMap
├── actors, timers, external systems, auth providers
├── flows and reactions
├── product thinking and experience intent
├── surfaces, processes, views, transitions, custom screens
├── rules and applications
└── discovery status and explicit decisions

Exact fields evolve under a versioned schema. Consumers must reject unknown required shapes or migrate older revisions; they must not reinterpret them silently.

  • Area/Subdomain: business capability in the problem space.
  • Bounded Context: solution-space linguistic boundary linked to a subdomain.
  • Aggregate/Domain Object: consistency boundary with root entity, fields, values, behavior, and lifecycle.
  • Entity: identity-bearing concept inside an aggregate.
  • Value Object: value defined by its attributes rather than identity.
  • Enum: closed named value catalog.
  • Command: intent to change state, including parameters, permissions, scope, mutations, events, and rationale.
  • Mutation: typed assignment or collection change against a real target.
  • Domain Event: past-tense fact emitted after successful behavior.
  • Reaction: event-to-command effect, optionally matching affected rows.
  • Timer: scheduled trigger for a command.
  • Rule/Domain Error: constraint and typed rejection.
  • State Machine: lifecycle states and allowed transitions.

A query defines parameters, fixed filters, source-mapped output fields, sort, pagination, return cardinality, permissions, scope, and rationale. Computed fields use structured derivation expressions where supported.

Actors can be human, system, external, or explicitly anonymous. Operations combine role permission with optional row scope: all, relationship/self, attribute, any-of, or membership reachability. Actor inheritance grants invocation permission but does not erase the operation’s scope.

The product model can include activities, user stories, processes, surfaces, experience blueprint decisions, persona homes and navigation, view patterns, composition overrides, transitions, and custom screens.

Generated screens are projections. Authored transitions and overrides remain model intent.

External systems define direction, kind, transport, authentication, capabilities, callbacks, and configuration names. Modules configure prefab capabilities. Infrastructure selects supported database, cache, and task-queue adapters.

Every reference must resolve; concepts have one canonical representation; destinations derive from current model state; generators cover supported generable constructs; and derived relationships are not separately authored.

For task-oriented explanations, start with Modeling overview. For implementation output, see Generator targets.