Files
2026-01-11 14:42:54 +01:00

48 lines
1.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Clean Architecture Data Flow (Shared Contract)
This document defines the **shared** data-flow rules that apply across all delivery applications.
It does not contain app-specific rules.
App-specific contracts:
- Core: [`docs/architecture/core/CORE_DATA_FLOW.md`](docs/architecture/core/CORE_DATA_FLOW.md:1)
- API: [`docs/architecture/api/API_DATA_FLOW.md`](docs/architecture/api/API_DATA_FLOW.md:1)
- Website: [`docs/architecture/website/WEBSITE_DATA_FLOW.md`](docs/architecture/website/WEBSITE_DATA_FLOW.md:1)
## 1) Dependency rule (non-negotiable)
Dependencies point inward.
```text
Delivery apps → adapters → core
```
Core never depends on delivery apps.
## 2) Cross-boundary mapping rule
If data crosses a boundary, it is mapped.
Examples:
- HTTP Request DTO is mapped to Core input.
- Core result is mapped to HTTP Response DTO.
## 3) Ownership rule
Each layer owns its data shapes.
- Core owns domain and application models.
- API owns HTTP DTOs.
- Website owns ViewData and ViewModels.
No layer re-exports another layers models as-is across a boundary.
## 4) Non-negotiable rules
1. Core contains business truth.
2. Delivery apps translate and enforce.
3. Adapters implement ports.