The garden
Evergreen notes, grouped by how far they've grown.
Evergreen
Bounded Context
The scope within which a single domain model stays consistent and unambiguous, governed by one ubiquitous language. The most durable pattern in DDD.
Domain Event
A named record of something meaningful that happened in the domain. The field's most successful addition to tactical DDD, and barely in the Blue Book.
Event Storming
A collaborative workshop for surfacing domain events with the whole team in the room. A post-2003 format the DDD canon adopted from within.
Ubiquitous Language
The shared vocabulary of a bounded context, used identically in conversation, code, and tests. The most robust concept in DDD.
Budding
Aggregate
A cluster of objects treated as one unit for data changes, guarded by a root that protects its invariants. Durable intent, dated mechanism.
Anti-Corruption Layer
A translation layer that keeps a foreign domain model from leaking across a context boundary. Wider than a hexagonal adapter.
Automated Checks
The suite runs and judges itself without a human. Beck's "Automated", renamed to concede what automation actually automates.
Behavioral Tests
Tests specify the contract a caller can observe, not the implementation behind it.
Composable Tests
You cannot test every combination of inputs. Structure tests so confidence composes across dimensions of variability, and you beat the combinatorial explosion.
Context Mapping
Naming the relationships between bounded contexts: partnership, customer-supplier, conformist, or a defensive anti-corruption layer. A socio-technical map.
CQRS
Separate models for writing and reading. It earns its complexity only when the two genuinely diverge, and it is distinct from domain events and event sourcing.
Desiderata in Tension
The eleven properties are not independent. Some reinforce each other, some pull against each other, and you cannot maximize them all at once.
Deterministic Tests
Same code, same result, every run. One flaky test and the suite's verdict stops meaning anything.
Diagnosable Tests
When a test fails, the cause should be obvious from the failure alone. One defect, one failure.
Domain-Driven Design
A field-audited reading of Evans's DDD. Strategic design is the durable core, the tactical building blocks are tiered, and the event-driven parts are the field's own addition.
Entity
An object defined by identity and continuity, not attributes. It can change every field and still be the same thing. Endorsed since 2003, but the word got captured.
Event Sourcing
Store state as the sequence of events that produced it, not the current snapshot. Distinct from domain events and CQRS, and best kept local rather than system-wide.
Fast Tests
Speed is not a nicety; it is the precondition for the tests being run at all.
Intent and Mechanism
The garden's core reading lens, first cut for DDD. Every pattern is a durable intent wrapped around a dated mechanism. The intent survives; the mechanism ages.
Minimal Test Data
If you can change a value without changing the result, it's irrelevant data, and irrelevant data hurts.
Predict Success in Production
The macro goal every property serves. Green means safe to ship, within the limits of what was specified.
Readable Tests
A test is documentation that happens to execute. Tell the reader what you're testing, not that you're testing.
Run in Any Order
The failure of one test can never make another test look broken. Bache's sharper name for Beck's Isolated.
Strategic vs Tactical Design
DDD has two halves. The durable core is strategic; the tactical building blocks earn their place by following from strategic decisions, not the other way around.
Subdomains and the Core Domain
Not all of the domain is equally valuable. Distillation finds the core worth your best modeling and separates it from supporting and generic subdomains.
Test Desiderata
Eleven properties, one macro goal, one outcome. A field-grounded remake of Beck's and Bache's lists that keeps what the evidence supports.
Testing vs. Checking
Checking verifies propositions and automates; testing asks which propositions matter, and doesn't.
Value Object
An object defined by its attributes, not an identity. Two with the same values are interchangeable. The one 2003 mechanism that improved with age.
Writable Tests
Tests should be cheap to author, but authoring cost is design feedback, not a lever to pull directly.
Seedling

Continuous Integration
Everyone pushes to the mainline at least daily, and every push is verified by an automated build. Running a CI server is not the same thing.

Energized Work
Work only as many hours as you can be productive, and only as many as you can sustain. The renamed 40-Hour Week, improved by the rename.

Extreme Programming
A discipline of software development organized as values, principles, and practices. The second edition rebuilt the practice list so a team can adopt one piece at a time.

Incremental Design
Invest in design every day, in the light of what the system now does. Viable only because three other practices flatten the cost of changing your mind.

Pair Programming
Two people, one running system. The XP practice with the most empirical study behind it, and the results are more qualified than either camp quotes.

Refactoring
Changing a program's structure without changing its observable behavior. Not a named practice in XP's second edition, and load-bearing for two that are.

Slack
Put work in every plan that can be dropped without breaking the promise. The cheapest way to make a schedule believable.

Stories
Units of customer-visible functionality, planned as a promise to talk rather than a written specification. Card, Conversation, Confirmation.
Structure-Insensitive Tests
A behavior-preserving refactor should never change a test's result. The one property still awaiting its cross-author audit.

Ten-Minute Build
Build the whole system and run all the tests in ten minutes. A budget, deliberately arbitrary, that makes two other practices affordable.

Test-First Programming
Write the failing test before the code that satisfies it. A design technique that happens to leave a regression suite behind.

Weekly and Quarterly Cycle
Two nested planning rhythms. The week plans the work, the quarter plans the theme, and the point of both is the length of the feedback loop.

XP Values
Communication, Simplicity, Feedback, Courage, Respect. The criteria that decide which practice to reach for when no practice fits.