Link Search Menu Expand Document (external link)

Domain Design

Social Experience Design

Scaffold an event-driven Elixir project based on the Domain Design of a social experience.

The Minimum Lovable Process (MLP) of Floorplanner:

  • Facilitates Domain Driven Design (DDD) by Creators and Clients.
  • Where Domain Modeling informs the event-driven Architecture Design.
  • From which an Elixir project is bootstrapped and the codebase scaffolded.

The top-level domain is called Social Experience Design.

Bounded Context diagram of Social Experience Design top-level domain

After decomposing, these are the bounded contexts for the constituent domains:

Bounded ContextDescriptionType
Domain ModelingModel a social experience using domain driven design.Core domain
Architecture DesignAlign architecture design to domain models.Supporting domain
ScaffoldingKeep project artifacts in sync with the social experience blueprint.Supporting domain
DiagrammingDraw diagrams in support of domain models and architecture design.Generic domain
Project ManagementManage state and lifecycle of the social experience blueprint.Generic domain

Domain Modeling

Core Domain

Description

Any software has a domain model. Solidground provides Strategic Domain Design in Floorplanner, that allows Clients to follow an explicit process of elaborating their social experience. This approach ensures focus on their needs and allows non-technical stakeholders to stay informed as the software matures.

Domain Design is the structural decomposition of the social experience. Clients are primary actors, guided by Creators. Floorplanner UI presents the design as documentation artifact that is elaborated and enriched with diagram. It is persisted using the Project Management domain where it becomes part of the Solution Blueprint.

The Domain Design decomposes into one or more Domains, until each Domain expresses a single Bounded Context that can be modeled consistently into domain Concepts and their Relationships. Terminology of the bounded context is collected in the Ubiquitous Language. This terminology is also used for domain storytelling as a textual explanation of the domain.

Concept map

Domain storytelling

  • Domain Design documents Domains.
  • Domain Design defines Domain Relationships.
  • Domain Design is modeled by a Context Map.
  • Bounded Context determines Ubiquitous Language.
  • Bounded Context defines a Domain.
  • Bounded Context defines Domain Concepts.
  • Bounded Context defines Concept Relationships.
  • Bounded Context is modeled by a Concept Map.
  • Bounded Context is documented by a Domain Story.
  • Domain Analyst decomposes Domains.
  • Domain Analyst diagrams Context Map.
  • Domain Analyst diagrams Bounded Context.
  • Domain Analyst determines Domain Story.

Architecture Design

Supporting Domain

Description

Architecture Design occurs in parallel with Domain Modeling where bounded contexts are informative to naming concepts of the event-driven architecture.

Constraints

  • Architecture Design is restricted to opinionated EDA patterns.
  • Domain Design bounded contexts are only informative.

Domain storytelling

  • Architecture Design documents a Service Module.
  • Service Module has an Architecture Template.
  • Service Module is modeled by an
  • Actor
  • Command
  • Aggregate
  • Process Manager
  • Domain Event
  • External System
  • View Projection
  • Field

Diagramming

Generic Domain

Summary

  • Diagrams support domain modeling, architecture design and scaffolding.
  • Diagramming involves modeling based on pre-defined Diagram Types.
  • Designer is the primary actor belonging to the Creators stakeholder group.
  • Secondary actor (not listed) is the Domain Expert in the Client stakeholder group.

Concept map

Domain storytelling

  • Diagram Type provides Shape Elements.
  • Diagram Type provides Connector Elements.
  • Diagram Type provides Element Interactions.
  • Diagram Type provides Validation Rules.
  • Diagram Type initializes the Diagrammer.
  • Diagrammer imports a Diagram.
  • Diagrammer exports a Diagram.
  • Diagrammer provides Canvas.
  • Diagrammer provides Shape Palette.
  • Diagrammer provides Connector Palette.
  • Diagrammer provides Tool Palette.
  • Tool Palette contains Element Selector.
  • Tool Palette contains Text Editor.
  • Tool Palette contains Frame Editor.
  • Diagram is displayed on the Canvas.
  • Diagram is based on a Diagram Type.
  • Designer selects a Shape Element.
  • Designer draws a Shape on the Canvas.
  • Designer interacts with a Shape.
  • Designer selects a Connector Element.
  • Designer draws a Connector on the Canvas.
  • Designer interacts with a Connector.

Child Pages