930 B
930 B
ADR-006: UI Component Purity and Container-Facade Pattern
Status: Accepted Date: 2026-07-03
Context
Reusable platform components cannot contain business and integration concerns.
Decision
Separate visual and business responsibilities:
- UI components are presentational only.
- Container components connect facades to UI components.
- Facades own orchestration and use services.
- Services handle IO and integration.
UI component restrictions:
- No HttpClient.
- No localStorage/sessionStorage access.
- No environment import.
- No tenant awareness.
- No authentication/payment logic.
- No route logic.
Consequences
Positive:
- Maximum reuse and testability.
- Supports widget library portability.
Negative:
- Requires refactoring of mixed legacy components.
Compliance Requirements
- Components must use Inputs for data and Outputs for events.
- Business behavior belongs to facades/containers only.