{"id":14039,"date":"2025-05-05T09:05:06","date_gmt":"2025-05-05T06:05:06","guid":{"rendered":"https:\/\/hosiaisluoma.fi\/design\/?p=14039"},"modified":"2025-10-28T14:34:54","modified_gmt":"2025-10-28T12:34:54","slug":"domain-driven-design-and-capabilities","status":"publish","type":"post","link":"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/","title":{"rendered":"Domain-Driven Design (DDD) and Capabilities"},"content":{"rendered":"\n<p class=\"has-text-align-center\">This is a chapter 7.3.14 from the <a href=\"https:\/\/hosiaisluoma.fi\/design\/enterprise-design-with-edgy-cookbook\/\" target=\"_blank\" rel=\"noreferrer noopener\">EDGY Cookbook<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Domain-Driven Design (DDD)<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"608\" height=\"604\" src=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-827.png\" alt=\"\" class=\"wp-image-13979\" style=\"width:148px\" srcset=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-827.png 608w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-827-300x298.png 300w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-827-150x150.png 150w\" sizes=\"auto, (max-width: 608px) 100vw, 608px\" \/><\/figure>\n<\/div>\n\n\n<p>Domain-Driven Design (DDD) is a strategic and tactical approach to software design and development that focuses on creating a deep connection between business needs and software solutions. At its core, DDD is about:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Modeling the business domain in close collaboration with domain experts,<\/li>\n\n\n\n<li>Structuring the software around that model to reflect real-world complexity.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>The <strong>domain<\/strong> is the starting point for modeling and design. Everything &#8211; language, models, systems &#8211; should reflect that business domain. This makes DDD a business-aligned approach to software, not just a technical one.<\/p>\n\n\n\n<p>Domain-Driven Design (DDD) main concepts:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>DDD Concept<\/th><th>Description<\/th><\/tr><tr><td>Domain<\/td><td>The business area an enterprise operates in. E.g., logistics, insurance.<\/td><\/tr><tr><td>Subdomain<\/td><td>A specific functional part of the domain. E.g., claims handling, order management<\/td><\/tr><tr><td>Bounded Context<\/td><td>A well-defined business and language boundary where a specific model applies.<\/td><\/tr><tr><td>Ubiquitous Language<\/td><td>Shared language used by both business and tech, based on the business&#8217;s own terminology.<\/td><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1968\" height=\"888\" src=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-828.png\" alt=\"Domain-Driven Design (DDD)\" class=\"wp-image-13980\" style=\"width:636px;height:auto\" srcset=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-828.png 1968w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-828-300x135.png 300w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-828-1024x462.png 1024w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-828-768x347.png 768w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-828-1536x693.png 1536w\" sizes=\"auto, (max-width: 1968px) 100vw, 1968px\" \/><figcaption class=\"wp-element-caption\"><strong>Figure<\/strong>: Business related core concepts of DDD.<\/figcaption><\/figure>\n\n\n\n<p>These concepts helps us:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Align software to real business capabilities of actual business operations<\/li>\n\n\n\n<li>Reflect how people actually work<\/li>\n\n\n\n<li>Ensure teams speak the same language<\/li>\n\n\n\n<li>Design around value-creating flows, not technical silos.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>What?<\/strong> DDD is a methodology and mindset for building software that closely reflects the real-world business it serves. It helps teams align business knowledge, language, and systems, so that software delivers meaningful value.<\/p>\n\n\n\n<p><strong>Why?<\/strong> DDD helps you design software that thinks like the business:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Closes the gap between business and technology<\/li>\n\n\n\n<li>Builds smarter software by modeling real business logic<\/li>\n\n\n\n<li>Reduces complexity through clear boundaries and ownership<\/li>\n\n\n\n<li>Enables scale by aligning architecture with business capabilities<\/li>\n\n\n\n<li>Accelerates delivery in complex domains (especially with microservices or modular platforms)<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#80ffb7\"><strong>Domain-Driven Design (DDD)<\/strong> is a methodology and mindset for building software that closely reflects the real-world business it serves.<\/p>\n\n\n\n<p>Key concepts of DDD:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Domain<\/strong>: The specific sphere of knowledge or activity that the software is designed to model. It represents the business problem space.<\/li>\n\n\n\n<li><strong>Subdomain<\/strong>: A distinct area of the overall business domain. It encapsulates specific business functions or responsibilities within the larger domain. There can be core-, supporting- and generic subdomains.<\/li>\n\n\n\n<li><strong>Model<\/strong>: An abstraction that describes selected aspects of a domain and can be used to solve problems related to that domain.<\/li>\n\n\n\n<li><strong>Entity<\/strong>: An object defined by its identity rather than its attributes. It has a unique identifier and a lifecycle.<\/li>\n\n\n\n<li><strong>Value Object<\/strong>: An immutable object that is defined by its attributes. It has no identity and is interchangeable with other value objects with the same attributes.<\/li>\n\n\n\n<li><strong>Aggregate<\/strong>: A cluster of domain objects that can be treated as a single unit. It ensures consistency within the boundary defined by the aggregate root.<\/li>\n\n\n\n<li><strong>Aggregate Root<\/strong>: The main entity within an aggregate that controls access to the other entities and value objects in the aggregate.<\/li>\n\n\n\n<li><strong>Domain Service<\/strong>: A stateless service that encapsulates domain logic which doesn&#8217;t naturally fit within an entity or value object.<\/li>\n\n\n\n<li><strong>Domain Event<\/strong>: An event that signifies a change or occurrence within the domain that domain experts care about.<\/li>\n\n\n\n<li><strong>Bounded Context<\/strong>: A boundary within which a particular domain model is defined and applicable. It ensures that the model remains consistent and unambiguous.<\/li>\n\n\n\n<li><strong>Context Map<\/strong>: A visual representation of the relationships between different bounded contexts, illustrating how they interact and integrate.<\/li>\n\n\n\n<li><strong>Repository<\/strong>: A mechanism for encapsulating storage, retrieval, and search behavior which emulates a collection of aggregates.<\/li>\n\n\n\n<li><strong>Factory<\/strong>: A design pattern used to encapsulate the creation of complex objects or aggregates, ensuring that the creation process adheres to the domain&#8217;s invariants.<\/li>\n\n\n\n<li><strong>Ubiquitous Language<\/strong>: A common language shared by all team members (developers, domain experts, etc.) that is used to connect all the activities of the team with the software. It ensures clear communication and understanding of the domain model.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">7.3.14.1 &#8211; &nbsp;DDD Domains<\/h4>\n\n\n\n<p>A DDD \u201cdomain\u201d is the same as the business domain the enterprise operates in:&nbsp; it\u2019s the area of knowledge, activity, and value creation that software applications are meant to support. The domain is the subject area enterprise works in, and the focus area of the software applications (custom built or customised COTS).<\/p>\n\n\n\n<p>The term \u201cdomain\u201d in DDD is intentionally borrowed from business domain. It creates a shared understanding between business and tech. It keeps DDD grounded in real-world problems and goals, not just technical abstraction. That&#8217;s true to both business architecture and DDD thinking.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1648\" height=\"524\" src=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-829.png\" alt=\"Domain-Driven Design (DDD)\" class=\"wp-image-13981\" style=\"width:579px;height:auto\" srcset=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-829.png 1648w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-829-300x95.png 300w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-829-1024x326.png 1024w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-829-768x244.png 768w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-829-1536x488.png 1536w\" sizes=\"auto, (max-width: 1648px) 100vw, 1648px\" \/><figcaption class=\"wp-element-caption\"><strong>Figure<\/strong>: Analogy from Business Domain to DDD domain.<\/figcaption><\/figure>\n\n\n\n<p>In DDD, the domain is just the business area your software is built to support, so the same business domains we talk about in strategy are the ones we model in our code.<\/p>\n\n\n\n<p class=\"has-text-align-center has-background\" style=\"background-color:#80ffb7\"><strong>Domain<\/strong> is a business area or problem space the software is built to support.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">7.3.14.2 &#8211; &nbsp;DDD Subdomains<\/h4>\n\n\n\n<p>A smaller, distinct area within the broader domain, typically aligned with a business capability. Core domain is the most strategic and valuable part of the business domain where the enterprise\u2019s competitive advantage lies. Business capabilities describe what the business needs to do, and DDD subdomains are the parts of the business we design software for to support those capabilities.<\/p>\n\n\n\n<p class=\"has-text-align-center has-background\" style=\"background-color:#80ffb7\">A <strong>subdomain<\/strong> is a focused part of the business that software needs to support.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1648\" height=\"408\" src=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-830.png\" alt=\"Domain-Driven Design (DDD)\" class=\"wp-image-13984\" style=\"width:570px;height:auto\" srcset=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-830.png 1648w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-830-300x74.png 300w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-830-1024x254.png 1024w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-830-768x190.png 768w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-830-1536x380.png 1536w\" sizes=\"auto, (max-width: 1648px) 100vw, 1648px\" \/><figcaption class=\"wp-element-caption\"><strong>Figure<\/strong>: Business Capabilites form the basis for DDD subdomains.<\/figcaption><\/figure>\n\n\n\n<p>A DDD subdomain is a business-aligned building block, it helps us organise software around what the business actually does.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Subdomains help us break down complexity<\/li>\n\n\n\n<li>You can design each subdomain with its own bounded context<\/li>\n\n\n\n<li>Subdomains are often derived from business capabilities<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>This analogy aligns enterprise architecture with domain-driven software design.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Business capabilities describe what the business does at a functional level<\/li>\n\n\n\n<li>DDD subdomains are the logical areas of responsibility within the domain that need to be modeled in software<\/li>\n\n\n\n<li>Therefore, \u201catomic\u201d capabilities (at fine-grained level, e.g. the 3<sup>rd<\/sup> level) help identify and define subdomains, especially when mapping the enterprise into modular, aligned systems.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-text-align-center has-background\" style=\"background-color:#80ffb7\">A <strong>subdomain<\/strong> bounds a business capability.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">7.3.14.3 &#8211; Subdomains vs. Bounded Contexts in DDD<\/h4>\n\n\n\n<p>While subdomains pertain to the business domain, bounded contexts are a DDD concept that define clear boundaries within which a particular domain model is applicable.<\/p>\n\n\n\n<p>A subdomain can be implemented within one or more bounded contexts, depending on the complexity and requirements. For instance, the &#8220;Order Management&#8221; subdomain might be divided into bounded contexts like &#8220;Order Creation,&#8221; &#8220;Order Fulfillment,&#8221; and &#8220;Order Tracking,&#8221; each with its own model and logic.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Concept<\/th><th>Subdomain (Business Capability)<\/th><th>Bounded Context<\/th><\/tr><tr><td>Description<\/td><td>A logical area of business responsibility (<em>what<\/em> the business does)<\/td><td>A design boundary in the codebase where a particular domain model is valid<\/td><\/tr><tr><td>Focus<\/td><td>Business behavior (according to strategy)<\/td><td>Technical and linguistic consistency<\/td><\/tr><tr><td>Owner<\/td><td>Business stakeholders, architects<\/td><td>Software teams, domain experts, developers<\/td><\/tr><tr><td>Example<\/td><td>\u201cLoan Origination\u201d<\/td><td>LoanApplicationContext (with its own model, terms like &#8220;Preapproval&#8221;, &#8220;Score&#8221;, etc.)<\/td><\/tr><tr><td>Represents<\/td><td>A problem space: <strong><em>what<\/em><\/strong> needs solving<\/td><td>A solution space: <strong><em>how<\/em><\/strong> it&#8217;s solved<\/td><\/tr><\/thead><\/table><\/figure>\n\n\n\n<p>Bounded contexts are typically designed <strong>around subdomains. A Bounded Context maps to one subdomain, or a tightly coupled group of subdomains.<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#80ffb7\"><strong>Bounded Context<\/strong> is a design boundary where a particular domain model applies with its own language and logic.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">7.3.14.4 &#8211; The Role of Applications in DDD<\/h4>\n\n\n\n<p>In DDD, applications are not the primary focus, but they do play a key role, especially when we move from domain modeling to implementation. Applications in DDD are the technical enablers of business capabilities, they run the logic defined in bounded contexts, which implement subdomains, which realize business capabilities.<\/p>\n\n\n\n<p>In DDD, an application is:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>is a technical implementation that supports one or more bounded contexts,<\/li>\n\n\n\n<li>an executable system that implements the logic defined in a bounded context.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1288\" height=\"412\" src=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-833.png\" alt=\"Domain-Driven Design (DDD)\" class=\"wp-image-13991\" style=\"width:513px;height:auto\" srcset=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-833.png 1288w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-833-300x96.png 300w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-833-1024x328.png 1024w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-833-768x246.png 768w\" sizes=\"auto, (max-width: 1288px) 100vw, 1288px\" \/><figcaption class=\"wp-element-caption\"><strong>Figure<\/strong>: The application is how the bounded context runs in real life.<\/figcaption><\/figure>\n\n\n\n<p>A bounded context defines a clear boundary where a specific domain model is valid. That model is realized in software, usually through one or more applications, services, or modules.<\/p>\n\n\n\n<p>Applications support Business Capabilities:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Business capabilities describe <strong><em>what<\/em><\/strong> the business must be able to do &#8211; to run the business<\/li>\n\n\n\n<li>Business capabilities map to subdomains in DDD.<\/li>\n\n\n\n<li>Subdomains are implemented inside bounded contexts.<\/li>\n\n\n\n<li>Bounded contexts are delivered as applications or services.<\/li>\n\n\n\n<li>Applications are where business capabilities become operational.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>In DDD, applications are not the starting point, they are the result. They execute the business logic defined in a bounded context, which reflects a subdomain, which enables a business capability. Business capabilities are the starting point.<\/p>\n\n\n\n<p class=\"has-text-align-center has-background\" style=\"background-color:#80ffb7\"><strong>Bounded Contexts<\/strong> are implemented by applications.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">7.3.14.5 &#8211; Separation of Concerns and DDD<\/h4>\n\n\n\n<p>In DDD bounded context, business rules belong to the domain model, not the application code. This separation keeps the (business) logic testable, reusable, and aligned with real business behavior. In DDD bounded context, business rules and business logic live in the Domain Layer, not in the application layer.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Bounded Context layer<\/th><th>Responsibility<\/th><\/tr><tr><td>Domain Layer<\/td><td>Contains the core business rules and logic (e.g. policies, validations, decisions)<\/td><\/tr><tr><td>Application Layer<\/td><td>Orchestrates use cases: coordinates domain objects, doesn&#8217;t contain business rules<\/td><\/tr><tr><td>Infrastructure Layer<\/td><td>Deals with technical details (databases, APIs, messaging)<\/td><\/tr><\/thead><\/table><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1924\" height=\"808\" src=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-832.png\" alt=\"Domain-Driven Design (DDD)\" class=\"wp-image-13990\" style=\"width:667px;height:auto\" srcset=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-832.png 1924w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-832-300x126.png 300w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-832-1024x430.png 1024w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-832-768x323.png 768w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-832-1536x645.png 1536w\" sizes=\"auto, (max-width: 1924px) 100vw, 1924px\" \/><figcaption class=\"wp-element-caption\"><strong>Figure<\/strong>: Layers inside Bounded Context.<\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">7.3.14.6 &#8211; DDD and EA concept mapping<\/h4>\n\n\n\n<p>Mapping Domain-Driven Design (DDD) concepts to Enterprise Architecture (EA) concepts helps bridge the gap between business strategy and software implementation. This alignment ensures that software systems effectively support and enhance business capabilities. Here&#8217;s a table that outlines the correspondence between key DDD concepts and their EA counterparts:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>DDD Concept<\/th><th>EA Concept<\/th><th>Description<\/th><\/tr><tr><td>Domain<\/td><td>Business Domain<\/td><td>A high-level area of business activity, such as Finance, Sales, or Human Resources.<\/td><\/tr><tr><td>Subdomain<\/td><td>Business Capability<\/td><td>A specific function or competency within a business domain, like Payment or Invoicing within Finance.<\/td><\/tr><tr><td>Bounded Context<\/td><td>Application \/ System Boundary<\/td><td>Defines the boundary within which a particular domain model is applicable. In EA, this aligns with the scope of an application or system supporting specific business capabilities.<\/td><\/tr><tr><td>Entity<\/td><td>Business Object<\/td><td>An object with a distinct identity that persists over time, such as a Customer or Order.<\/td><\/tr><tr><td>Domain Service<\/td><td>Business Service<\/td><td>A stateless operation that encapsulates domain logic not naturally fitting within entities or value objects.<\/td><\/tr><tr><td>Domain Event<\/td><td>Business Event<\/td><td>An occurrence within the domain that is significant to the business, such as Order Placed or Payment Received.<\/td><\/tr><tr><td>Ubiquitous Language<\/td><td>Common Business Vocabulary<\/td><td>A shared language between business and IT stakeholders, ensuring clear communication and understanding of domain concepts.<\/td><\/tr><tr><td>Context Map<\/td><td>Integration Architecture Diagram<\/td><td>Visual representation of relationships and interactions between different bounded contexts or systems, highlighting integration points and dependencies.<\/td><\/tr><\/thead><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">7.3.14.7 &#8211; &nbsp;DDD Subdomains &amp; Business Capabilities<\/h4>\n\n\n\n<p>A subdomain in DDD is responsible for a particular business capability, encapsulating the related business logic and processes.<\/p>\n\n\n\n<p>\u201cSubdomains are finer-grained problem domains whose goal is to provide solutions for specific business capabilities.\u201d<\/p>\n\n\n\n<p>[<em>Learning Domain-Driven Design<\/em>, Aligning Software Architecture and Business Strategy, Khononov V., O\u2019Reilly, 2022]<\/p>\n\n\n\n<p>A business capability refers to an enterprise\u2019s ability to perform a specific business function, such as payment processing, customer onboarding, or inventory management. In DDD, these capabilities are represented as subdomains, which are distinct areas of the business domain with their own specific logic and responsibilities.<\/p>\n\n\n\n<p>DDD Subdomains can be identified based on the enterprise&#8217;s capability map.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A capability map shows what the business needs to do.<\/li>\n\n\n\n<li>DDD subdomains show where software needs to support those things<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1888\" height=\"1292\" src=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-834.png\" alt=\"Domain-Driven Design (DDD)\" class=\"wp-image-13994\" style=\"width:706px;height:auto\" srcset=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-834.png 1888w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-834-300x205.png 300w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-834-1024x701.png 1024w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-834-768x526.png 768w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-834-1536x1051.png 1536w\" sizes=\"auto, (max-width: 1888px) 100vw, 1888px\" \/><figcaption class=\"wp-element-caption\"><strong>Figure<\/strong>: Subdomains can be identified based on the enterprise&#8217;s capability map.<\/figcaption><\/figure>\n\n\n\n<p class=\"has-text-align-center has-background\" style=\"background-color:#80ffb7\"><strong>Subdomains<\/strong> can be identified based on the enterprise&#8217;s Capability Map.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">7.3.14.8 &#8211; Business capabilities are the starting point in DDD<\/h4>\n\n\n\n<p>Business capabilities:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Define what the organization must be able to do to deliver value.<\/li>\n\n\n\n<li>They help identify the most important subdomains in Domain-Driven Design (DDD).<\/li>\n\n\n\n<li>They guide how teams, systems, and software should be structured.<\/li>\n\n\n\n<li>They connect strategy to operations and implementation, creating alignment.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>It\u2019s reasonable and practical to start with business capabilities, because they describe what truly matters: the work that delivers value. From there, we identify subdomains, define bounded contexts, and build the supporting systems through aligned teams.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">7.3.14.9 &#8211; DDD concept mapping to business architecture<\/h4>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1372\" height=\"1568\" src=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-836.png\" alt=\"Domain-Driven Design (DDD)\" class=\"wp-image-13998\" style=\"width:506px;height:auto\" srcset=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-836.png 1372w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-836-263x300.png 263w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-836-896x1024.png 896w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-836-768x878.png 768w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-836-1344x1536.png 1344w\" sizes=\"auto, (max-width: 1372px) 100vw, 1372px\" \/><figcaption class=\"wp-element-caption\"><strong>Figure<\/strong>: DDD concept analagies to business architecture.<\/figcaption><\/figure>\n\n\n\n<p>DDD Is Especially Useful For:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Complex business domains<\/li>\n\n\n\n<li>Systems needing long-term maintainability<\/li>\n\n\n\n<li>Microservices or modular architectures<\/li>\n\n\n\n<li>Cross-functional collaboration (business + tech).<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>DDD helps the enterprise to model software around the business itself: aligned with business capabilities that deliver value. At the operational level: Teams build, run, and own the capability. They know what value it delivers and how it works end-to-end. At the development level: Developers implement logic that matches real business capability business rules and policies. Nothing is lost in translation. No guessing. No rework. DDD brings clarity to development teams, and flow to the enterprise. Teams build software that mirrors how the business works, adapts fast, and delivers real customer value &#8211; because teams are aligned, not just integrated, with the actual business behavior.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#80ffb7\"><strong>Domain-Driven Design (DDD)<\/strong> aligns systems with how the business actually works. It helps the enterprise go from features to <strong><em>flow<\/em><\/strong>, from silos to service, and from delivery to value.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">7.3.14.10 &#8211; DDD and Capabilities<\/h4>\n\n\n\n<p>When starting with Domain-Driven Design (DDD) and aiming to build a business-aligned enterprise flow, the recommended order is to start with customer journeys and the business capabilities. These give the strategic and real-world anchors for everything that follows.<\/p>\n\n\n\n<p>Business capabilities link everything to business value. Business capabilities define what the business needs to be able to do. This helps to identify related subdomains (Core, Supporting, Generic), and helps connect business strategy to domain-driven design.<\/p>\n\n\n\n<p class=\"has-text-align-center has-background\" style=\"background-color:#80ffb7\">Business capabilities act as a starting point for identifying Subdomains.<\/p>\n\n\n\n<p>Business capabilities are essential for strategic planning and business architecture. They define what the business does, should do, or intends to do in alignment with strategic goals. They are high-level, technology-agnostic, and focused on value delivery.<\/p>\n\n\n\n<p>Common Pitfall:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The word \u201ccapability\u201d is often used loosely across business &nbsp;and technical contexts, causing confusion. It is necessary to clarify whether you&#8217;re referring to business capabilities or system-level abilities.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>When talking about <em>capabilities<\/em>, people often mean different things, which leads to confusion.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Some refer to <em>what the business<\/em> is doing or must be able to do to deliver value: these are business capabilities.\u2028<\/li>\n\n\n\n<li>Others use the term to describe <em>what a technical platform or application<\/em> can do, such as application functions or features.\u2028It&#8217;s a common tendency to apply the word \u201ccapability\u201d in a technical context, even when more accurate terms like system responsibilities, services, or functions would be clearer.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#80ffb7\">The term \u201c<em>capability<\/em> \u201cis often used loosely across business and technical contexts, causing confusion.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"848\" height=\"768\" src=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-853.png\" alt=\"\" class=\"wp-image-14097\" style=\"width:266px;height:auto\" srcset=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-853.png 848w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-853-300x272.png 300w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-853-768x696.png 768w\" sizes=\"auto, (max-width: 848px) 100vw, 848px\" \/><\/figure>\n<\/div>\n\n\n<p>Without clarification, &#8220;capability&#8221; becomes a vague catch-all that mixes strategic, business, and technical concerns. This leads to misalignment between business and IT, especially in architecture, planning, and team conversations. Being intentional and consistent in using terms like <em><strong>business capability<\/strong><\/em> and <em><strong>system capability<\/strong><\/em> (a.k.a. <em>platform capability<\/em> or <em>technology capability<\/em>) helps create shared understanding.<\/p>\n\n\n\n<p>Terms are introduced in the table below.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Term<\/th><th>Definition<\/th><th>Used By<\/th><th>Example<\/th><th>Purpose \/ Use<\/th><th>Notes<\/th><\/tr><tr><td>Business Capability<\/td><td>What the <em>business<\/em> must be able to do to deliver value and meet strategic goals, and indirectly: to support customer needs<\/td><td>Executives, business architects, product owners<\/td><td>&#8220;Manage Orders&#8221;, &#8220;Handle Inquiries&#8221;<\/td><td>Strategic planning, capability mapping, DDD subdomain identification<\/td><td>Stable, tech-agnostic, not a process or system<\/td><\/tr><tr><td>System Capability<\/td><td>What a <em>system<\/em> or service is responsible for doing to support business needs<\/td><td>Architects, platform teams, technical leads<\/td><td>&#8220;Generate Invoice&#8221;, &#8220;Process Order Data&#8221;<\/td><td>Service boundaries, system design, team ownership, bounded contexts<\/td><td>Supports business capabilities; mid-level technical abstraction<\/td><\/tr><tr><td>Application Function<\/td><td>Backend operation or use case implemented in a system<\/td><td>Developers, solution architects<\/td><td>&#8220;Validate Payment&#8221;, &#8220;Calculate Tax&#8221;<\/td><td>API\/service implementation, technical decomposition<\/td><td>Often part of a bounded context<\/td><\/tr><tr><td>Application Feature<\/td><td>User-facing functionality that exposes system behavior<\/td><td>Product managers, UX designers, end-users<\/td><td>&#8220;Submit Report&#8221;, &#8220;Download Invoice&#8221;<\/td><td>UI design, roadmap planning, user experience<\/td><td>May span multiple capabilities and functions<\/td><\/tr><\/thead><\/table><\/figure>\n\n\n\n<p>Key differences between business capabilities and system capabilities are shown in the table below.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Aspect<\/th><th>Business Capability<\/th><th>System Capability<\/th><\/tr><tr><th class=\"has-text-align-left\" data-align=\"left\">Focus<\/th><td>What the business does<\/td><td>What a system can do<\/td><\/tr><tr><th class=\"has-text-align-left\" data-align=\"left\">Level<\/th><td>Strategic \/ conceptual \/ business<\/td><td>Operational \/ technical \/<\/td><\/tr><tr><th class=\"has-text-align-left\" data-align=\"left\">Stability<\/th><td>More stable over time<\/td><td>Can change as tech evolves<\/td><\/tr><tr><th class=\"has-text-align-left\" data-align=\"left\">Audience<\/th><td>Business leaders, strategists, architects<\/td><td>Developers<\/td><\/tr><tr><th class=\"has-text-align-left\" data-align=\"left\">Example<\/th><td>&#8220;Manage Customer Data&#8221;<\/td><td>&#8220;Update customer address in CRM system&#8221;<\/td><\/tr><\/thead><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">7.3.14.11 &#8211; Flow of Actions: Capability Map \u2192 DDD \u2192 Applications<\/h4>\n\n\n\n<p>Start from business needs (capabilities), organize them using DDD (subdomains + bounded contexts), and implement them as focused applications.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Start with the Capability Map\n<ul class=\"wp-block-list\">\n<li>Identify <em>what<\/em> the business needs to do<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Define Subdomains \u2013 based on business capabilities\n<ul class=\"wp-block-list\">\n<li>Group capabilities into logical business areas (subdomains) based on purpose and complexity.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Identify Bounded Contexts\n<ul class=\"wp-block-list\">\n<li>Set clear boundaries for each subdomain &#8211; define the terms, logic, and rules used inside them.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Design Applications\n<ul class=\"wp-block-list\">\n<li>Build or structure applications (e.g. microservices, modules) around those bounded contexts.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Assign Teams\n<ul class=\"wp-block-list\">\n<li>Align teams with the bounded contexts and applications they own and evolve.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"3052\" height=\"888\" src=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-838.png\" alt=\"Domain-Driven Design (DDD)\" class=\"wp-image-14004\" srcset=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-838.png 3052w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-838-300x87.png 300w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-838-1024x298.png 1024w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-838-768x223.png 768w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-838-1536x447.png 1536w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2024\/08\/image-838-2048x596.png 2048w\" sizes=\"auto, (max-width: 3052px) 100vw, 3052px\" \/><figcaption class=\"wp-element-caption\"><strong>Figure<\/strong>: Flow of actions.<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">7.3.14.11 &#8211; How DDD Relates to the Flow of Operational Business and Development<\/h4>\n\n\n\n<p>Central to applying Domain-Driven Design (DDD) not just as a modeling tool, but as a way to improve how business and development flow together. DDD isn\u2019t just a software technique, it directly supports the flow of operational business and connects to how development delivers value.<\/p>\n\n\n\n<p>1. DDD reflects how the business actually works<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Domains and subdomains<ul><li>mirror real business functions and flows<\/li><\/ul>\n<ul class=\"wp-block-list\">\n<li>reflect real business areas: business domains<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Bounded contexts<ul><li>define clear boundaries where these operations are modeled, owned, and executed.<\/li><\/ul>\n<ul class=\"wp-block-list\">\n<li>match how responsibility is split across teams or departments.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>2. DDD enables flow in development<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Each subdomain becomes a clear unit of work, linked to business outcomes.<\/li>\n\n\n\n<li>Bounded contexts become team-aligned modules that can be built, tested, and delivered independently.<\/li>\n\n\n\n<li>Developers know exactly which business capability they\u2019re supporting<\/li>\n\n\n\n<li>Development is organized around bounded contexts, which map to teams, systems, and services<\/li>\n\n\n\n<li>This matches Team Topologies thinking: stream-aligned teams own specific value flows<\/li>\n\n\n\n<li>Each team works with autonomy, clarity, and a shared domain language<\/li>\n\n\n\n<li>Less friction, faster delivery, fewer handovers &#8211; better flow of change.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>3. DDD supports end-to-end value delivery<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>When designed around domains:\n<ul class=\"wp-block-list\">\n<li>We can trace a customer journey to a business capability to a bounded context to a team\/system<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>This helps model the overall flow: the <em>Enterprise Flow<\/em>:<ul><li>From need \u2192 to capability \u2192 to implementation \u2192 to customer value<\/li><\/ul>\n<ul class=\"wp-block-list\">\n<li>Both business operations and development are aligned around continuous value flow.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>DDD aligns business flow with development flow, so value moves smoothly from customer need to working software.<\/p>\n\n\n\n<p class=\"has-text-align-center has-background\" style=\"background-color:#80ffb7\"><strong>Domain-Driven Design (DDD)<\/strong> aligns operational business flow with development flow.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-text-color has-black-color has-alpha-channel-opacity has-black-background-color has-background is-style-wide\"\/>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"858\" height=\"854\" src=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2025\/05\/image-202.png\" alt=\"\" class=\"wp-image-15267\" style=\"width:594px;height:auto\" srcset=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2025\/05\/image-202.png 858w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2025\/05\/image-202-300x300.png 300w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2025\/05\/image-202-150x150.png 150w, https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2025\/05\/image-202-768x764.png 768w\" sizes=\"auto, (max-width: 858px) 100vw, 858px\" \/><\/figure>\n\n\n\n<p>&#8212; Eero Hosiaisluoma<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Domain-Driven Design (DDD) is a strategic and tactical approach to software design and development that focuses on creating a deep connection between business needs and software solutions.<\/p>\n","protected":false},"author":1,"featured_media":15267,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[169],"tags":[196,174,170,195,194],"class_list":["post-14039","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-domain-driven-design-ddd","tag-business-capability","tag-domain-driven-design","tag-enterprise-flow","tag-platform-capability","tag-system-capability"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Domain-Driven Design (DDD) and Capabilities - EDGY<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Domain-Driven Design (DDD) and Capabilities - EDGY\" \/>\n<meta property=\"og:description\" content=\"Domain-Driven Design (DDD) is a strategic and tactical approach to software design and development that focuses on creating a deep connection between business needs and software solutions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/\" \/>\n<meta property=\"og:site_name\" content=\"EDGY\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-05T06:05:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-28T12:34:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2025\/05\/image-202.png\" \/>\n\t<meta property=\"og:image:width\" content=\"858\" \/>\n\t<meta property=\"og:image:height\" content=\"854\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Eero\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Eero\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/domain-driven-design-and-capabilities\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/domain-driven-design-and-capabilities\\\/\"},\"author\":{\"name\":\"Eero\",\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/#\\\/schema\\\/person\\\/a4947710155b23565facd46ef90e3def\"},\"headline\":\"Domain-Driven Design (DDD) and Capabilities\",\"datePublished\":\"2025-05-05T06:05:06+00:00\",\"dateModified\":\"2025-10-28T12:34:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/domain-driven-design-and-capabilities\\\/\"},\"wordCount\":3039,\"publisher\":{\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/#\\\/schema\\\/person\\\/a4947710155b23565facd46ef90e3def\"},\"image\":{\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/domain-driven-design-and-capabilities\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/image-202.png\",\"keywords\":[\"business capability\",\"Domain-Driven Design\",\"Enterprise Flow\",\"platform capability\",\"system capability\"],\"articleSection\":[\"Domain-Driven Design (DDD)\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/domain-driven-design-and-capabilities\\\/\",\"url\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/domain-driven-design-and-capabilities\\\/\",\"name\":\"Domain-Driven Design (DDD) and Capabilities - EDGY\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/domain-driven-design-and-capabilities\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/domain-driven-design-and-capabilities\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/image-202.png\",\"datePublished\":\"2025-05-05T06:05:06+00:00\",\"dateModified\":\"2025-10-28T12:34:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/domain-driven-design-and-capabilities\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/domain-driven-design-and-capabilities\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/domain-driven-design-and-capabilities\\\/#primaryimage\",\"url\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/image-202.png\",\"contentUrl\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/image-202.png\",\"width\":858,\"height\":854},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/domain-driven-design-and-capabilities\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Domain-Driven Design (DDD) and Capabilities\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/#website\",\"url\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/\",\"name\":\"EDGY\",\"description\":\"Examples\",\"publisher\":{\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/#\\\/schema\\\/person\\\/a4947710155b23565facd46ef90e3def\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/#\\\/schema\\\/person\\\/a4947710155b23565facd46ef90e3def\",\"name\":\"Eero\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/cropped-image-82.png\",\"url\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/cropped-image-82.png\",\"contentUrl\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/cropped-image-82.png\",\"width\":100,\"height\":50,\"caption\":\"Eero\"},\"logo\":{\"@id\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/cropped-image-82.png\"},\"sameAs\":[\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/\"],\"url\":\"https:\\\/\\\/hosiaisluoma.fi\\\/design\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Domain-Driven Design (DDD) and Capabilities - EDGY","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/","og_locale":"en_US","og_type":"article","og_title":"Domain-Driven Design (DDD) and Capabilities - EDGY","og_description":"Domain-Driven Design (DDD) is a strategic and tactical approach to software design and development that focuses on creating a deep connection between business needs and software solutions.","og_url":"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/","og_site_name":"EDGY","article_published_time":"2025-05-05T06:05:06+00:00","article_modified_time":"2025-10-28T12:34:54+00:00","og_image":[{"width":858,"height":854,"url":"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2025\/05\/image-202.png","type":"image\/png"}],"author":"Eero","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Eero","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/#article","isPartOf":{"@id":"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/"},"author":{"name":"Eero","@id":"https:\/\/hosiaisluoma.fi\/design\/#\/schema\/person\/a4947710155b23565facd46ef90e3def"},"headline":"Domain-Driven Design (DDD) and Capabilities","datePublished":"2025-05-05T06:05:06+00:00","dateModified":"2025-10-28T12:34:54+00:00","mainEntityOfPage":{"@id":"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/"},"wordCount":3039,"publisher":{"@id":"https:\/\/hosiaisluoma.fi\/design\/#\/schema\/person\/a4947710155b23565facd46ef90e3def"},"image":{"@id":"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/#primaryimage"},"thumbnailUrl":"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2025\/05\/image-202.png","keywords":["business capability","Domain-Driven Design","Enterprise Flow","platform capability","system capability"],"articleSection":["Domain-Driven Design (DDD)"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/","url":"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/","name":"Domain-Driven Design (DDD) and Capabilities - EDGY","isPartOf":{"@id":"https:\/\/hosiaisluoma.fi\/design\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/#primaryimage"},"image":{"@id":"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/#primaryimage"},"thumbnailUrl":"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2025\/05\/image-202.png","datePublished":"2025-05-05T06:05:06+00:00","dateModified":"2025-10-28T12:34:54+00:00","breadcrumb":{"@id":"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/#primaryimage","url":"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2025\/05\/image-202.png","contentUrl":"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2025\/05\/image-202.png","width":858,"height":854},{"@type":"BreadcrumbList","@id":"https:\/\/hosiaisluoma.fi\/design\/domain-driven-design-and-capabilities\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/hosiaisluoma.fi\/design\/"},{"@type":"ListItem","position":2,"name":"Domain-Driven Design (DDD) and Capabilities"}]},{"@type":"WebSite","@id":"https:\/\/hosiaisluoma.fi\/design\/#website","url":"https:\/\/hosiaisluoma.fi\/design\/","name":"EDGY","description":"Examples","publisher":{"@id":"https:\/\/hosiaisluoma.fi\/design\/#\/schema\/person\/a4947710155b23565facd46ef90e3def"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hosiaisluoma.fi\/design\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/hosiaisluoma.fi\/design\/#\/schema\/person\/a4947710155b23565facd46ef90e3def","name":"Eero","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2026\/03\/cropped-image-82.png","url":"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2026\/03\/cropped-image-82.png","contentUrl":"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2026\/03\/cropped-image-82.png","width":100,"height":50,"caption":"Eero"},"logo":{"@id":"https:\/\/hosiaisluoma.fi\/design\/wp-content\/uploads\/2026\/03\/cropped-image-82.png"},"sameAs":["https:\/\/hosiaisluoma.fi\/design\/"],"url":"https:\/\/hosiaisluoma.fi\/design\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/hosiaisluoma.fi\/design\/wp-json\/wp\/v2\/posts\/14039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hosiaisluoma.fi\/design\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hosiaisluoma.fi\/design\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hosiaisluoma.fi\/design\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hosiaisluoma.fi\/design\/wp-json\/wp\/v2\/comments?post=14039"}],"version-history":[{"count":16,"href":"https:\/\/hosiaisluoma.fi\/design\/wp-json\/wp\/v2\/posts\/14039\/revisions"}],"predecessor-version":[{"id":15436,"href":"https:\/\/hosiaisluoma.fi\/design\/wp-json\/wp\/v2\/posts\/14039\/revisions\/15436"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hosiaisluoma.fi\/design\/wp-json\/wp\/v2\/media\/15267"}],"wp:attachment":[{"href":"https:\/\/hosiaisluoma.fi\/design\/wp-json\/wp\/v2\/media?parent=14039"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hosiaisluoma.fi\/design\/wp-json\/wp\/v2\/categories?post=14039"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hosiaisluoma.fi\/design\/wp-json\/wp\/v2\/tags?post=14039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}