Yumin Fish Harvest
Author

Yumin Fish Harvest

A deep‑sea salvage fisherman sharing architecture insights, practical tips, and lessons learned.

27
Articles
0
Likes
147
Views
0
Comments
Recent Articles

Latest from Yumin Fish Harvest

27 recent articles
Yumin Fish Harvest
Yumin Fish Harvest
Jul 16, 2026 · Backend Development

Step 1 of DDD in Action: A Preferred Store Case Study Shows How to Apply Strategic Design

This article walks through a complete DDD strategic‑design workshop for a community‑focused retail e‑commerce system, showing how to identify business goals, split sub‑domains, decide core versus supporting domains, define bounded contexts, build a unified language, draw context maps, capture risks, and prepare review artefacts before moving to tactical design.

DDDStrategic Designbackend-architecture
0 likes · 33 min read
Step 1 of DDD in Action: A Preferred Store Case Study Shows How to Apply Strategic Design
Yumin Fish Harvest
Yumin Fish Harvest
Jul 14, 2026 · Backend Development

Mastering CQRS: When to Separate Read and Write in DDD

This article explains how CQRS splits write operations that enforce business rules using domain models from read operations optimized for page performance, illustrates common pitfalls of mixing the two, and provides concrete Java code, SQL examples, migration steps, validation checklists, and best‑practice guidelines for implementing lightweight CQRS in a DDD‑based backend.

CQRSCommand Query SeparationJava
0 likes · 26 min read
Mastering CQRS: When to Separate Read and Write in DDD
Yumin Fish Harvest
Yumin Fish Harvest
Jul 10, 2026 · Backend Development

How to Layer Code with DDD: Four‑Layer Architecture, DIP & Hexagonal

This article explains why and how to separate a system into four DDD layers—User Interface, Application, Domain, and Infrastructure—illustrates the benefits of clear responsibilities, demonstrates dependency inversion and hexagonal architecture with concrete Spring Boot examples, and warns of common pitfalls.

DDDSpring Bootbackend design
0 likes · 10 min read
How to Layer Code with DDD: Four‑Layer Architecture, DIP & Hexagonal
Yumin Fish Harvest
Yumin Fish Harvest
Jul 10, 2026 · Backend Development

When One Aggregate Isn’t Enough: Using Domain Services and Domain Events

The article explains why cross‑aggregate business logic belongs in domain services, how domain events capture immutable business facts, and demonstrates practical Spring Boot implementations—including in‑process publishing, message‑queue integration, and the Outbox pattern—while highlighting pitfalls and verification techniques.

Domain EventDomain ServiceOutbox Pattern
0 likes · 10 min read
When One Aggregate Isn’t Enough: Using Domain Services and Domain Events
Yumin Fish Harvest
Yumin Fish Harvest
Jul 10, 2026 · Fundamentals

Why Aggregates Are So Hard in DDD: Using Invariants to Find Real Boundaries

The article explains that an aggregate is defined by the business invariants that must stay strongly consistent, shows how the aggregate root protects those rules, and provides concrete design principles—ID references, single‑aggregate transactions, small boundaries, validation tests, and common pitfalls—illustrated with an order domain example.

DDDInvariantaggregate
0 likes · 16 min read
Why Aggregates Are So Hard in DDD: Using Invariants to Find Real Boundaries
Yumin Fish Harvest
Yumin Fish Harvest
Jul 10, 2026 · Fundamentals

Distinguishing Entities vs Value Objects in DDD: Criteria & Code

Learn how to tell whether a domain concept is an Entity or a Value Object by asking if its identity matters or only its attributes, see concrete examples with Money, Address and Order, understand immutable design, proper equals/hashCode implementation, and validation through unit tests.

EntityImmutableJava
0 likes · 13 min read
Distinguishing Entities vs Value Objects in DDD: Criteria & Code
Yumin Fish Harvest
Yumin Fish Harvest
Jul 10, 2026 · Fundamentals

Prioritizing DDD Modeling: Focus on Domains, Subdomains, and Core Domains

This chapter explains how to strategically allocate modeling effort in a DDD project by distinguishing domains, subdomains, core, supporting, and generic subdomains, using the “Preferred Store” case to illustrate which areas merit detailed modeling and which can remain simple, ultimately guiding resource focus and decision‑making.

Core DomainStrategic Modelingdomain-driven design
0 likes · 8 min read
Prioritizing DDD Modeling: Focus on Domains, Subdomains, and Core Domains