Files
marketplaces/docs/architecture/foundation/adr/ADR-006-ui-component-purity-and-container-facade-pattern.md

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.