Skip to content

Modeling overview

Modeling in modelARch means turning product knowledge into structured concepts that can be validated and projected consistently. You can author them through conversation and visual tools; you do not need to edit the underlying representation directly.

Concern Main concepts
Product structure Areas, objects, fields, value objects, enums
Behavior Actions, mutations, events, reactions, timers
Decisions Rules, lifecycle transitions, domain errors
People and access Actors, roles, permissions, row scopes, ownership
Read side Queries, filters, sorting, computed fields, reports
Experience Activities, stories, processes, surfaces, views, transitions
Presentation Brand, tokens, layout intent, view overrides
Integrations External systems, capabilities, callbacks, auth contracts
Platform capabilities Add-ons and infrastructure selections

These concepts form one graph. A command belongs to an object, can be invoked by specific actors, mutates known fields, emits an event, appears as an affordance in a view, and can trigger an external effect. Keeping those links explicit is what lets the generator coordinate backend, frontend, tests, and documentation.

modelARch keeps a strategic distinction:

  • The problem space groups business capabilities into core, supporting, and generic subdomains.
  • The solution space defines bounded contexts and aggregates that implement those capabilities.

The product UI uses approachable terms such as areas and objects while preserving the stronger structural boundaries needed for generation.

Not every field in an exported model is manually authored. Some values are derived:

  • canvas positions are UI state;
  • relationships between areas can be inferred from the model graph;
  • screens can be derived from actors, queries, and objects;
  • view patterns can be inferred from semantic shape;
  • process participants can be derived from their ordered steps.

Derived data must have one canonical derivation. If the user needs a different result, the model captures an explicit override or a new source decision rather than allowing projections to drift.

A complete model is not the largest possible model. It is one that makes all implementation-significant decisions explicit.

Do model:

  • business meaning, constraints, access, lifecycle, and exceptions;
  • integration contracts and failure expectations;
  • experience choices that must survive regeneration;
  • operational requirements that change generated topology.

Do not model:

  • individual production rows;
  • secret values;
  • transient CPU or queue depth;
  • arbitrary generated file layout;
  • implementation details with no semantic consequence.

The model is useful because it can be checked. References, scopes, state transitions, field sources, process order, and experience bindings must resolve. A structurally valid model can still be a poor product, so discovery also records rationale and challenges omissions.

Start with Areas and objects or consult the Evolutionary Model reference.