<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>How-To Guides on Advanced Beginner</title><link>https://advanced-beginner.github.io/en/docs/ddd/howto/</link><description>Recent content in How-To Guides 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/howto/index.xml" rel="self" type="application/rss+xml"/><item><title>Defining Aggregate Boundaries</title><link>https://advanced-beginner.github.io/en/docs/ddd/howto/aggregate-boundaries/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/ddd/howto/aggregate-boundaries/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Problem It Solves&lt;/strong&gt;: Performance issues from making Aggregates too large, or consistency violations from making them too small
&lt;strong&gt;Time Required&lt;/strong&gt;: ~30 minutes
&lt;strong&gt;Prerequisites&lt;/strong&gt;: Assumes you have read the &lt;a href="https://advanced-beginner.github.io/en/docs/ddd/concepts/aggregate/"&gt;Aggregate Deep Dive&lt;/a&gt; document&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class="book-hint warning"&gt;&lt;strong&gt;Success Criteria&lt;/strong&gt;&lt;br&gt;&lt;p&gt;After completing this guide, you will be able to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Identify invariants to determine Aggregate boundaries&lt;/li&gt;
&lt;li&gt;Decide whether to include an Entity using 4 key questions&lt;/li&gt;
&lt;li&gt;Recognize signals when boundaries are wrong&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2 id="1-identify-core-invariants"&gt;1. Identify Core Invariants&lt;a class="anchor" href="#1-identify-core-invariants"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;An &lt;strong&gt;Invariant&lt;/strong&gt; is a business rule that must always be true. It is the most important criterion for defining Aggregate boundaries.&lt;/p&gt;</description></item><item><title>Identifying Bounded Contexts</title><link>https://advanced-beginner.github.io/en/docs/ddd/howto/bounded-context-identification/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/ddd/howto/bounded-context-identification/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Problem Solved&lt;/strong&gt;: Unsure how to divide the system, or high inter-team dependencies due to incorrectly defined Context boundaries
&lt;strong&gt;Time Required&lt;/strong&gt;: ~25 min
&lt;strong&gt;Prerequisites&lt;/strong&gt;: Assumes you have read the &lt;a href="https://advanced-beginner.github.io/en/docs/ddd/concepts/strategic-design/"&gt;Strategic Design&lt;/a&gt; document&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class="book-hint warning"&gt;&lt;strong&gt;Success Criteria&lt;/strong&gt;&lt;br&gt;&lt;p&gt;After completing this guide, you will be able to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Identify Context boundaries using 3 signals&lt;/li&gt;
&lt;li&gt;Validate boundaries through domain expert interviews&lt;/li&gt;
&lt;li&gt;Recognize and fix symptoms of incorrect boundaries&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2 id="1-detecting-signals-that-indicate-context-boundaries"&gt;1. Detecting Signals That Indicate Context Boundaries&lt;a class="anchor" href="#1-detecting-signals-that-indicate-context-boundaries"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Check the following 3 signals to determine if Bounded Context separation is needed.&lt;/p&gt;</description></item><item><title>Designing Value Objects</title><link>https://advanced-beginner.github.io/en/docs/ddd/howto/value-object-design/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/ddd/howto/value-object-design/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Problem Solved&lt;/strong&gt;: High complexity from making everything an Entity, or low type safety due to Primitive Obsession
&lt;strong&gt;Time Required&lt;/strong&gt;: ~20 min
&lt;strong&gt;Prerequisites&lt;/strong&gt;: Assumes you have read the &lt;a href="https://advanced-beginner.github.io/en/docs/ddd/concepts/tactical-design/"&gt;Tactical Design&lt;/a&gt; document&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class="book-hint warning"&gt;&lt;strong&gt;Success Criteria&lt;/strong&gt;&lt;br&gt;&lt;p&gt;After completing this guide, you will be able to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Distinguish Entity from Value Object using 3 questions&lt;/li&gt;
&lt;li&gt;Implement Value Objects using Java Records&lt;/li&gt;
&lt;li&gt;Refactor Primitive Obsession to Value Objects&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2 id="1-distinguishing-entity-vs-value-object"&gt;1. Distinguishing Entity vs Value Object&lt;a class="anchor" href="#1-distinguishing-entity-vs-value-object"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="11-three-decision-questions"&gt;1.1 Three Decision Questions&lt;a class="anchor" href="#11-three-decision-questions"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Apply the following questions in order:&lt;/p&gt;</description></item><item><title>Designing Domain Events</title><link>https://advanced-beginner.github.io/en/docs/ddd/howto/domain-event-design/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/ddd/howto/domain-event-design/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Problem Solved&lt;/strong&gt;: Complex transactions due to tight coupling between Aggregates, or difficulty propagating changes
&lt;strong&gt;Time Required&lt;/strong&gt;: ~25 min
&lt;strong&gt;Prerequisites&lt;/strong&gt;: Assumes you have read the &lt;a href="https://advanced-beginner.github.io/en/docs/ddd/concepts/aggregate/"&gt;Aggregate Deep Dive&lt;/a&gt; document&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote class="book-hint warning"&gt;&lt;strong&gt;Success Criteria&lt;/strong&gt;&lt;br&gt;&lt;p&gt;After completing this guide, you will be able to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Identify situations that need domain events&lt;/li&gt;
&lt;li&gt;Apply event naming conventions and payload design&lt;/li&gt;
&lt;li&gt;Implement Spring event publishing/subscribing patterns&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2 id="1-identifying-situations-that-need-domain-events"&gt;1. Identifying Situations That Need Domain Events&lt;a class="anchor" href="#1-identifying-situations-that-need-domain-events"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="11-three-signals-that-indicate-events-are-needed"&gt;1.1 Three Signals That Indicate Events Are Needed&lt;a class="anchor" href="#11-three-signals-that-indicate-events-are-needed"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Check the following 3 signals to determine if domain events are needed.&lt;/p&gt;</description></item></channel></rss>