Concepts
Concepts describe the architectural vocabulary and the responsibility boundaries used in this knowledge base.
The Whole Picture
A request from outside is translated into the domain, decided by one capability, and answered.
User Interaction an outside trigger and its response
│
▼
Delivery Mechanism translates the outside request into a
│ domain request, and the response back
▼
Request Processing Unit one capability, a command or a query,
│ decides over a context, records consequences
▼
Application State the shared facts every capability works on
A Reactor stands between the delivery mechanism and the capabilities when one interaction needs several of them. Providers give a capability access to external resources such as time, email, or payment.
The delivery mechanism, the reactor, and the providers sit outside the domain. The domain is the capabilities and the Application State they share.
Available Concepts
- Domain Capability — one thing the domain can do, a command or a query.
- Application State — the shared facts the domain keeps as its authoritative record.
- Commands and Queries — the two kinds of domain request, kept separate.
- Command Context Consistency — a command's outcome is recorded only while the facts the decision is based on still hold.
- Request Processing Units — the unit that implements one capability, from request to response.
- Functional Core / Imperative Shell — the internal structure of an RPU: a pure decide function inside an effectful shell.
- Reactors — coordinate an interaction that needs several capabilities.
- Providers — access to external resources outside the domain.
- Application State Provider — the in-domain access path to the Application State; holds the storage technology.
- Delivery Mechanisms — translate outside requests into domain requests and back.
- User Interactions — the outside-facing process from trigger to response.