docs
This commit is contained in:
65
docs/architecture/website/WEBSITE_DATA_FLOW.md
Normal file
65
docs/architecture/website/WEBSITE_DATA_FLOW.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# Website Data Flow (Strict)
|
||||
|
||||
This document defines the **apps/website** data flow.
|
||||
|
||||
Authoritative contract: [`docs/architecture/website/WEBSITE_CONTRACT.md`](docs/architecture/website/WEBSITE_CONTRACT.md:1).
|
||||
|
||||
Website scope:
|
||||
|
||||
- `apps/website/**`
|
||||
|
||||
## 1) Website role
|
||||
|
||||
The website is a **delivery layer**.
|
||||
|
||||
It renders truth from the API and forwards user intent to the API.
|
||||
|
||||
## 2) Read flow
|
||||
|
||||
```text
|
||||
RSC page.tsx
|
||||
↓
|
||||
PageQuery
|
||||
↓
|
||||
API client (infra)
|
||||
↓
|
||||
API Transport DTO
|
||||
↓
|
||||
Page DTO
|
||||
↓
|
||||
Presenter (client)
|
||||
↓
|
||||
ViewModel (optional)
|
||||
↓
|
||||
Presenter (client)
|
||||
↓
|
||||
ViewData
|
||||
↓
|
||||
Template
|
||||
```
|
||||
|
||||
## 3) Write flow
|
||||
|
||||
All writes enter through **Server Actions**.
|
||||
|
||||
```text
|
||||
User intent
|
||||
↓
|
||||
Server Action
|
||||
↓
|
||||
Command Model / Request DTO
|
||||
↓
|
||||
API
|
||||
↓
|
||||
Revalidation
|
||||
↓
|
||||
RSC reload
|
||||
```
|
||||
|
||||
## 4) Non-negotiable rules
|
||||
|
||||
1. Templates accept ViewData only.
|
||||
2. Page Queries do not format.
|
||||
3. Presenters do not call the API.
|
||||
4. Client state is UI-only.
|
||||
|
||||
Reference in New Issue
Block a user