<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Core Concepts on Advanced Beginner</title><link>https://advanced-beginner.github.io/en/docs/ddd/concepts/</link><description>Recent content in Core Concepts on Advanced Beginner</description><generator>Hugo</generator><language>en-US</language><managingEditor>d8lzz1gpw@mozmail.com (kimbenji)</managingEditor><webMaster>d8lzz1gpw@mozmail.com (kimbenji)</webMaster><lastBuildDate>Mon, 23 Mar 2026 19:08:15 +0900</lastBuildDate><atom:link href="https://advanced-beginner.github.io/en/docs/ddd/concepts/index.xml" rel="self" type="application/rss+xml"/><item><title>Strategic Design</title><link>https://advanced-beginner.github.io/en/docs/ddd/concepts/strategic-design/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/ddd/concepts/strategic-design/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Architects and senior developers who want to understand the big picture of DDD
&lt;strong&gt;Prerequisites&lt;/strong&gt;: Have read &lt;a href="https://advanced-beginner.github.io/en/docs/ddd/quick-start/"&gt;Quick Start&lt;/a&gt; or understand basic DDD concepts
&lt;strong&gt;Estimated Time&lt;/strong&gt;: About 30 minutes
&lt;strong&gt;Key Question&lt;/strong&gt;: &amp;ldquo;How should we divide the system, and how should each part collaborate?&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br&gt;4 core concepts of Strategic Design: &lt;strong&gt;Subdomain&lt;/strong&gt; (classify business areas) -&amp;gt; &lt;strong&gt;Ubiquitous Language&lt;/strong&gt; (define common language) -&amp;gt; &lt;strong&gt;Bounded Context&lt;/strong&gt; (set model boundaries) -&amp;gt; &lt;strong&gt;Context Mapping&lt;/strong&gt; (define collaboration between boundaries)
&lt;/blockquote&gt;

&lt;p&gt;Strategic design is high-level design that decides how to divide and integrate complex domains. It is the starting point of DDD and the core activity that determines the overall system architecture.&lt;/p&gt;</description></item><item><title>Tactical Design</title><link>https://advanced-beginner.github.io/en/docs/ddd/concepts/tactical-design/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/ddd/concepts/tactical-design/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Backend developers who want to implement DDD building blocks in code
&lt;strong&gt;Prerequisites&lt;/strong&gt;: Read &lt;a href="https://advanced-beginner.github.io/en/docs/ddd/concepts/strategic-design/"&gt;Strategic Design&lt;/a&gt; or understand Bounded Context concept
&lt;strong&gt;Time Required&lt;/strong&gt;: About 40 minutes
&lt;strong&gt;Key Question&lt;/strong&gt;: &amp;ldquo;What patterns should be used to implement domain models?&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br&gt;Tactical Design Building Blocks: &lt;strong&gt;Entity&lt;/strong&gt;(distinguished by identity) + &lt;strong&gt;Value Object&lt;/strong&gt;(distinguished by value) → &lt;strong&gt;Aggregate&lt;/strong&gt;(consistency boundary) + &lt;strong&gt;Repository&lt;/strong&gt;(persistence) + &lt;strong&gt;Domain Service&lt;/strong&gt;(domain logic) + &lt;strong&gt;Domain Event&lt;/strong&gt;(event communication)
&lt;/blockquote&gt;

&lt;p&gt;Tactical design consists of patterns for concretely implementing domain models. If strategic design draws the &amp;ldquo;big picture,&amp;rdquo; tactical design provides &amp;ldquo;specific implementation methods.&amp;rdquo;&lt;/p&gt;</description></item><item><title>Aggregate Deep Dive</title><link>https://advanced-beginner.github.io/en/docs/ddd/concepts/aggregate/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/ddd/concepts/aggregate/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers who understand Aggregate basics and need deep dive into design
&lt;strong&gt;Prerequisites&lt;/strong&gt;: Entity, Value Object concepts from &lt;a href="https://advanced-beginner.github.io/en/docs/ddd/concepts/tactical-design/"&gt;Tactical Design&lt;/a&gt;
&lt;strong&gt;Reading Time&lt;/strong&gt;: About 25 minutes
&lt;strong&gt;Key Question&lt;/strong&gt;: &amp;ldquo;How do I determine Aggregate boundaries, and what is the appropriate size?&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br&gt;Aggregate design core: &lt;strong&gt;Invariant-based boundary setting&lt;/strong&gt; → &lt;strong&gt;Keep it small&lt;/strong&gt; → &lt;strong&gt;Reference by ID&lt;/strong&gt; → &lt;strong&gt;Use eventual consistency&lt;/strong&gt;
&lt;/blockquote&gt;

&lt;h1 id="aggregate-deep-dive"&gt;Aggregate Deep Dive&lt;a class="anchor" href="#aggregate-deep-dive"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;A deep dive into Aggregate design principles, transaction boundaries, and practical patterns.&lt;/p&gt;</description></item><item><title>Aggregate Practical Patterns</title><link>https://advanced-beginner.github.io/en/docs/ddd/concepts/aggregate-patterns/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/ddd/concepts/aggregate-patterns/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers who have learned Aggregate basics and want to learn practical patterns
&lt;strong&gt;Prerequisites&lt;/strong&gt;: Understanding core concepts from &lt;a href="https://advanced-beginner.github.io/en/docs/ddd/concepts/aggregate/"&gt;Aggregate Deep Dive&lt;/a&gt;
&lt;strong&gt;Reading Time&lt;/strong&gt;: About 30 minutes
&lt;strong&gt;Key Question&lt;/strong&gt;: &amp;ldquo;What patterns should I apply when implementing Aggregates?&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br&gt;Practical patterns: &lt;strong&gt;Factory Method&lt;/strong&gt; (creation) + &lt;strong&gt;Domain Event publishing&lt;/strong&gt; + &lt;strong&gt;Optimistic Locking&lt;/strong&gt; (concurrency) + &lt;strong&gt;Soft Delete&lt;/strong&gt; (deletion)
&lt;/blockquote&gt;

&lt;h1 id="aggregate-practical-patterns"&gt;Aggregate Practical Patterns&lt;a class="anchor" href="#aggregate-practical-patterns"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Implementation patterns and decision guides for Aggregate design.&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Common imports for examples in this page:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Domain Model Patterns</title><link>https://advanced-beginner.github.io/en/docs/ddd/concepts/domain-model-patterns/</link><pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/ddd/concepts/domain-model-patterns/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Backend developers who understand &lt;a href="https://advanced-beginner.github.io/en/docs/ddd/concepts/tactical-design/"&gt;Tactical Design&lt;/a&gt; building blocks
&lt;strong&gt;Prerequisites&lt;/strong&gt;: Understanding of Entity, Value Object, Repository, Domain Service concepts
&lt;strong&gt;Estimated Time&lt;/strong&gt;: About 25-30 minutes
&lt;strong&gt;Key Question&lt;/strong&gt;: &amp;ldquo;How do you structure domain logic that is difficult to express with core building blocks alone?&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br&gt;Core building blocks (Entity, Value Object, Repository, Domain Service, Factory) are the skeleton of a domain model. The patterns covered in this document are tools for &lt;strong&gt;systematically expressing business rules&lt;/strong&gt; on top of that skeleton: &lt;strong&gt;Specification&lt;/strong&gt; (condition checking) + &lt;strong&gt;Policy&lt;/strong&gt; (calculation/decision) + &lt;strong&gt;Module&lt;/strong&gt; (code organization) + &lt;strong&gt;Builder&lt;/strong&gt; (complex creation) + &lt;strong&gt;Null Object&lt;/strong&gt; (null safety)
&lt;/blockquote&gt;

&lt;p&gt;You can implement a domain model with just the core building blocks of tactical design. However, real businesses have more complex requirements. Condition checks like &amp;ldquo;can this order be confirmed?&amp;rdquo;, policy decisions like &amp;ldquo;what percentage discount applies to VIP customers?&amp;rdquo;, and code organization spanning multiple modules — let us explore the auxiliary patterns that cleanly solve these problems.&lt;/p&gt;</description></item><item><title>Testing Strategy</title><link>https://advanced-beginner.github.io/en/docs/ddd/concepts/testing/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/ddd/concepts/testing/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers establishing testing strategies for DDD-based projects
&lt;strong&gt;Prerequisites&lt;/strong&gt;: &lt;a href="https://advanced-beginner.github.io/en/docs/ddd/concepts/tactical-design/"&gt;Tactical Design&lt;/a&gt; building blocks, basic JUnit/Mockito usage
&lt;strong&gt;Time Required&lt;/strong&gt;: About 25 minutes
&lt;strong&gt;Key Question&lt;/strong&gt;: &amp;ldquo;How should tests be organized in DDD architecture?&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br&gt;Testing Strategy Core: &lt;strong&gt;Unit Tests&lt;/strong&gt;(domain model focused, most numerous) → &lt;strong&gt;Integration Tests&lt;/strong&gt;(Repository, external integrations) → &lt;strong&gt;E2E Tests&lt;/strong&gt;(critical scenarios only)
&lt;/blockquote&gt;

&lt;p&gt;Systems applying Domain-Driven Design require a different testing strategy than typical CRUD applications. Since business logic is concentrated in domain models, tests should also be designed around the domain layer. This document explores testing strategies suitable for DDD architecture and specific implementation methods.&lt;/p&gt;</description></item><item><title>Anti-Patterns and Pitfalls</title><link>https://advanced-beginner.github.io/en/docs/ddd/concepts/anti-patterns/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/ddd/concepts/anti-patterns/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers who are applying or considering adopting DDD
&lt;strong&gt;Prerequisites&lt;/strong&gt;: Basic concepts from &lt;a href="https://advanced-beginner.github.io/en/docs/ddd/quick-start/"&gt;Quick Start&lt;/a&gt; and &lt;a href="https://advanced-beginner.github.io/en/docs/ddd/concepts/tactical-design/"&gt;Tactical Design&lt;/a&gt;
&lt;strong&gt;Reading Time&lt;/strong&gt;: About 20 minutes
&lt;strong&gt;Key Question&lt;/strong&gt;: &amp;ldquo;What are the common mistakes when applying DDD, and how can they be avoided?&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class="book-hint warning"&gt;&lt;strong&gt;Warning&lt;/strong&gt;&lt;br&gt;The anti-patterns introduced in this document frequently occur in real projects. Check if your codebase exhibits these symptoms.
&lt;/blockquote&gt;

&lt;p&gt;DDD (Domain-Driven Design) is a powerful design methodology, but if not applied correctly, it can only increase complexity. This document examines common DDD anti-patterns encountered in practice and their solutions. Understanding the symptoms of each anti-pattern and catching them early to correct is crucial.&lt;/p&gt;</description></item></channel></rss>