Skip to main content

Open Modeling Language profiles

Default configuration

You can directly donwload the k5-oml.yaml for further customization. This file represents the included default configuration for OML.

Default profiles

Risks, Tech Debt & Health

Modeling profile for risks, technical debt, and quality - Everything that creates risks or reduces quality.

Download: a3-risks-techdebt-health-profile-1.0.0.yaml

Model elements

IdNameDescription
a3.riskRiskA risk that encompasses architecture, security, performance, or integration risks
a3.tech-debt-itemTech Debt ItemA consciously incurred technical debt

Relationships

IdNameDescription
a3.affectsaffectsIndicates that a risk or technical debt affects an element
a3.mitigatesmitigatesIndicates that an element reduces or mitigates a risk
a3.causescausesIndicates that an element causes a risk or creates technical debt
a3.related-torelated toIndicates a general relationship between risks or technical debt

Basic Collaboration

Modeling profile for collaboration elements - Discussion Threads for collaborative conversations about architecture, design, and domain topics.

Download: basic-collaboration-profile-1.0.0.yaml

Model elements

IdNameDescription
collaboration.discussion-threadDiscussion ThreadA collaborative discussion thread about architecture, design, or domain topics

Relationships

IdNameDescription
collaboration.discussesdiscussesIndicates that a discussion thread discusses a specific element
collaboration.related-torelated toIndicates a general relationship between discussion threads

Basic Shapes

Basic geometric and document shapes for simple diagrams and visualizations.

Download: basic-shapes-profile-1.0.0.yaml

Diagram elements

IdNameDescription
basic-shapes.arrowRectangleArrow rectangleAn arrow rectangle shape
basic-shapes.rectangleRectangleA rectangular shape
basic-shapes.circleCircleA circular shape
basic-shapes.triangleTriangleA triangular shape
basic-shapes.diamondDiamondA diamond shape
basic-shapes.documentDocumentA document shape
basic-shapes.folderFolderA folder shape
basic-shapes.hexagonHexagonA hexagonal shape
basic-shapes.octagonOctagonAn octagonal shape
basic-shapes.starStarA star shape
basic-shapes.callsCallsA calls shape
basic-shapes.bracketsBracketsA brackets shape
basic-shapes.cylinderCylinderA cylinder shape
basic-shapes.parallelogramParallelogramA parallelogram shape
basic-shapes.pinPinA pin shape
basic-shapes.plusPlusA plus shape
basic-shapes.roundRectangleRound rectangleA round rectangle shape
basic-shapes.lineLineA line shape
basic-shapes.verticalLineVertical lineA vertical line shape

Relationships

IdNameDescription
basic-shapes.connectsconnectsConnects a shape to another shape or element

C4 Model

C4 Model profile for software architecture visualization at multiple levels of abstraction.

Download: c4-profile-1.0.0.yaml

Available diagrams

DiagramDescription
C4 System Context Diagram (Level 1)High-level view showing the system and its users
C4 Container Diagram (Level 2)Shows the containers within a system and their relationships
C4 Component Diagram (Level 3)Shows the components within a container and their relationships
C4 Deployment DiagramShows how containers are deployed onto infrastructure nodes within environments

Model elements

IdNameDescription
c4.personPersonA person who uses the software system
c4.systemSystemA software system that delivers value to its users
c4.containerContainerA deployable unit within a system that can run independently
c4.databaseDatabaseA database or data store used by containers
c4.componentComponentA component within a container that groups related functionality
c4.infrastructure-nodeInfrastructure NodeA physical or virtual infrastructure node that hosts containers and other infrastructure nodes
c4.deployment-nodeDeployment NodeAn infrastructure node that hosts containers and other deployment nodes
c4.environmentEnvironmentA deployment environment that groups infrastructure nodes and containers

Relationships

IdNameDescription
c4.usesusesIndicates that one element uses another
c4.deployed-onhostsIndicates that an infrastructure or deployment node hosts containers or other infrastructure nodes
c4.containscontainsIndicates that an element is contained within an environment

Domain-Driven Design

Domain Driven Design (DDD) is a software development approach that focuses on modeling complex business domains.

Download: ddd-profile-1.0.0.yaml

Model elements

IdNameDescription
ddd.aggregateAggregateA domain aggregate that groups related entities and value objects
ddd.entityEntityA domain entity with a unique identity
ddd.value-objectValueObjectA value object without identity, defined by its attributes
ddd.commandCommandA command that triggers an action or process in the domain
ddd.domain-serviceDomain serviceA domain service that performs domain operations
ddd.business-eventBusiness eventA business event that represents something that happened in the domain
ddd.business-errorBusiness errorA business error or exception in the domain

Relationships

IdNameDescription
ddd.extendsextendsIndicates that an element extends another element
ddd.triggerstriggersIndicates that one element triggers a business logic element (command or domain service)
ddd.publishespublishesIndicates that a business logic element (command or domain service) publishes a business event
ddd.throwsthrowsIndicates that a business logic element (command or domain service) throws a business error
ddd.containscontainsIndicates that an element contains another element

Implementation Design

Design and model the technical implementation details of your system, including classes, methods, services, integration patterns, and persistence structures.

Download: implementation-profile-1.0.0.yaml

Model elements

IdNameDescription
implementation.serviceServiceA service that implements business logic or technical functionality
implementation.classClassA class that represents a data structure or component
implementation.methodMethodA method or operation that performs a specific function
implementation.rest-apiREST APIA REST API that provides or consumes web services
implementation.rest-api-operationREST operationA REST API operation that defines an HTTP endpoint
implementation.soap-apiSOAP APIA SOAP API that provides or consumes web services
implementation.message-publisherMessage publisherA component that publishes messages to a message broker
implementation.message-listenerMessage listenerA component that listens for and consumes messages from a message broker
implementation.message-topicMessage topicA message topic or queue that routes messages between publishers and listeners
implementation.messageMessageA message that is sent between components via message brokers
implementation.db-collectionDB collectionA database collection (NoSQL) that stores documents or records
implementation.db-tableDB tableA database table (relational) that stores records

Relationships

IdNameDescription
implementation.extendsextendsIndicates that a class extends another class
implementation.triggerstriggersIndicates that one element triggers an implementation logic element (service, method, etc.)
implementation.containscontainsIndicates that an element contains another element

Further profiles

Architecture Principles, Standards & Policies

Modeling profile for architecture principles, standards, and policies - Governance and compliance framework.

Download: a1-principles-standards-profile-1.0.0.yaml

Model elements

IdNameDescription
a1.principleArchitecture PrincipleA fundamental rule or guideline that guides architectural decisions
a1.standardArchitecture StandardA specific technical standard or specification that must be followed
a1.policyArchitecture PolicyA mandatory rule or requirement that must be enforced

Relationships

IdNameDescription
a1.implementsimplementsIndicates that a standard or policy implements a principle
a1.enforcesenforcesIndicates that a policy enforces a standard
a1.applies-toapplies toIndicates that a principle, standard, or policy applies to an element
a1.related-torelated toIndicates a general relationship between principles, standards, or policies
a1.conflicts-withconflicts withIndicates that principles, standards, or policies conflict with each other

Event Storming

Event Storming is a technique to exploratively collect domain knowledge and process logic.

Download: event-storming-profile-1.0.0.yaml

Model elements

IdNameDescription
event-storming.domain-eventDomain EventA domain event that represents something that happened in the domain
event-storming.read-view-modelRead-/View-ModelA read model or view model that represents a projection of domain events
event-storming.systemSystemA system that participates in the domain process
event-storming.commandCommandA command that triggers an action or process
event-storming.actorActor / User / RoleAn actor, user, or role that participates in the domain process
event-storming.problemProblemA problem or issue identified during event storming
event-storming.policyPolicyA business policy or rule that governs the domain process
event-storming.aggregateAggregateA domain aggregate that groups related domain events and commands
event-storming.insightInsightAn insight or learning discovered during event storming

Relationships

This profile does not define relationship types.