<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Jeff Bailey | Domain-Driven Design</title><link>https://jeffbailey.us/categories/domain-driven-design/</link><description>This website contains learning resources, opinions, and facts about software-related technology.</description><language>en</language><generator>Hugo</generator><atom:link href="https://jeffbailey.us/categories/domain-driven-design/rss.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Wed, 03 Jun 2026 00:00:00 +0000</lastBuildDate><item><title>How Do I Use a Software Ontology?</title><link>https://jeffbailey.us/blog/2026/06/03/how-do-i-use-a-software-ontology/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/06/03/how-do-i-use-a-software-ontology/</guid><pubDate>Wed, 03 Jun 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>How-To</category><category>Software Architecture</category><category>Domain-Driven Design</category><description><![CDATA[<p>The interviews are done. Someone sat with the domain expert and committed <code>ontology.md</code> next to the code. Then the quarter got busy. Six months later a report counts the same <code>Customer</code> three times, and the model built to prevent exactly that has not changed since launch.</p>
<p>An ontology earns its keep only when a team uses it. A <a href="https://jeffbailey.us/blog/2026/05/28/what-is-a-software-ontology/">software ontology</a> is a shared model of a domain: its entities, their attributes, and their relationships, written so people and code agree on what each term means. This guide assumes the model already exists. The goal is to put it to work: in workflows, design sessions, database schemas, and on every screen where a teammate looks something up. Pick the section that matches the task in front of you. The command examples assume PostgreSQL and <code>psql</code>, but the practice maps to any engine that supports comments and constraints. The examples use the Subscription Billing context from the <a href="https://jeffbailey.us/blog/2026/05/29/how-do-i-create-a-software-ontology/">creation guide</a>, so the terms line up across both articles.</p>]]></description></item><item><title>How Do I Create a Software Ontology?</title><link>https://jeffbailey.us/blog/2026/05/29/how-do-i-create-a-software-ontology/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/05/29/how-do-i-create-a-software-ontology/</guid><pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>How-To</category><category>Software Architecture</category><category>Domain-Driven Design</category><description><![CDATA[<p>Two senior engineers argued for an hour over a bug. The fix took ten minutes, but the argument lasted fifty. One meant &ldquo;active subscription&rdquo; when saying <em>customer</em>, the other meant &ldquo;any account.&rdquo; Both were correct but lacked a shared model.</p>
<p>A <a href="https://jeffbailey.us/blog/2026/05/28/what-is-a-software-ontology/">software ontology</a> is an explicit, agreed-upon domain model, including concepts, meanings, and relationships. In DDD, it covers ubiquitous language, bounded contexts, and aggregates. This guide creates one.</p>
<h2 id="goal">Goal</h2>
<p>Create a software ontology for a domain: a model that identifies key concepts, defines them once, classifies (entity, value object, or aggregate), and maps relationships and boundaries. The final artifact is an agreed-upon model reflected in the code.</p>]]></description></item><item><title>What Is a Software Ontology?</title><link>https://jeffbailey.us/blog/2026/05/28/what-is-a-software-ontology/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/05/28/what-is-a-software-ontology/</guid><pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>Explanation</category><category>Software Architecture</category><category>Domain-Driven Design</category><description><![CDATA[<p>Open a mature codebase and grep for <code>Customer</code>. In billing, it means an active, paid account; in support, anyone who has sent an email; in analytics, a deduplicated household. The bug isn&rsquo;t in one module, but in three teams misunderstanding they&rsquo;re referring to the same thing.</p>
<p>A software ontology is a clearly defined, shared model of a domain that includes concepts, meanings, and relationships, documented and integrated with code. This article explains its role in Domain-Driven Design (DDD), why it exists, and how it functions as a mental model.</p>]]></description></item></channel></rss>