User Interactions
A User Interaction describes how the outside world engages with the system.
It starts with an external trigger and ends when the system returns a response.
Examples:
- a user clicks a button
- a client sends an HTTP request
- a user runs a CLI command
- another system sends a message
- a scheduled trigger starts processing
A User Interaction is shaped by external needs such as presentation, protocol, workflow, input collection, and response format.
It is not the same thing as a domain capability.
Interaction Boundary
A User Interaction is an outside-facing boundary.
It describes the full path from trigger to response.
That path may involve one domain capability.
It may also involve several domain capabilities, Providers, or coordination steps.
The User Interaction describes what the outside world experiences.
It does not define the internal ownership boundary of the domain.
Relationship to RPUs
An RPU owns one internal domain capability.
A User Interaction may be fulfilled by one RPU when the interaction maps directly to one domain capability.
User Interaction
-> Delivery Mechanism
-> RPU
-> Delivery Mechanism
-> Response
The RPU remains protocol-independent.
The User Interaction remains outside-facing.
Relationship to Reactors
A User Interaction may require a Reactor when one coherent response needs several internal steps.
Use a Reactor when the interaction coordinates:
- multiple RPUs
- one or more Providers
- several steps around one external trigger
- data flow between capabilities and external operations
User Interaction
-> Delivery Mechanism
-> Reactor
-> Delivery Mechanism
-> Response
The Reactor coordinates the internal flow.
The participating RPUs still own their domain decisions.
Relationship to Delivery Mechanisms
A Delivery Mechanism translates the User Interaction into the internal request shape.
It converts external input into an RPU or Reactor request.
It converts the result back into the required external response format.
The Delivery Mechanism knows the external form.
The RPU or Reactor knows the internal processing contract.
User Interaction vs Domain Capability
A User Interaction and a domain capability change for different reasons.
A User Interaction may change because the UI changes, an API changes, a workflow changes, or the response format changes.
A domain capability changes when the domain decision or query changes.
Keeping both separate prevents external interaction structure from becoming the ownership model of the domain.
Summary
A User Interaction is:
- outside-facing
- started by an external trigger
- completed by a response
- translated by a Delivery Mechanism
- sometimes fulfilled by one RPU
- sometimes coordinated by a Reactor
- different from a domain capability