What this is
Ubiquitous is an eight-module, beginner-to-advanced introduction to Domain-Driven Design. It teaches the Ubiquitous Language, the three strategic patterns (Subdomains, Bounded Contexts, Context Mapping), and the eight tactical building blocks (Entity, Value Object, Aggregate, Repository, Domain Service, Domain Event, Factory, Module) — through one running example, a small online bookstore’s order-fulfillment system, so the concepts accumulate instead of resetting with every module.
Where the content comes from
The course is grounded in the canonical DDD literature — Eric Evans, Domain-Driven Design (2003), and Vaughn Vernon, Implementing Domain-Driven Design (2013) — rewritten here as a teaching curriculum for a human learning DDD for the first time: each module builds on the last, one bookstore example replaces the scattered illustrations typical of a reference text with a single continuous case, and every pattern is introduced with why it matters before its formal definition.
How it was written
Every module on this site was written by Claude, under my direction, from a DDD reference specification distilled from those two books — the curriculum structure, the bookstore example, the prose, the Java snippets, and the self-check questions. My part was the brief, the editing, and the verification: deciding what the course should cover, insisting the running example carry from one module to the next, and checking the claims against the sources before publishing.
I say this plainly because I think you should know what you’re reading, and because the alternative — passing generated prose off as hand-written — is the thing that makes people distrust all of it. AI-assisted writing needs the same treatment as any other draft: someone has to read it properly and be answerable for what it says. Here that’s me. If something in these modules is wrong, the mistake is mine, not the tool’s.
What this course is not
It’s an introduction, not a reference implementation. It won’t walk you through wiring Spring Data repositories, configuring an event bus, or setting up a microservice per Bounded Context — those are real decisions a team makes once the model is understood, and they’re orthogonal to the modeling discipline itself. It also doesn’t cover every corner of DDD; CQRS, Event Sourcing, and Sagas are deliberately out of scope. Finish this course able to read an unfamiliar codebase and say, with evidence, “here’s the Aggregate, here’s its boundary, here’s the context it lives in” — that’s the goal.