55 lines
1.8 KiB
YAML
55 lines
1.8 KiB
YAML
formula_id: WBS_10_DOTNET_READ_MODEL_CONTRACT_V1
|
|
owner: QuantEngine
|
|
status: draft
|
|
goal: "운영 화면과 조회 API의 read model 경계를 분리한다."
|
|
|
|
read_models:
|
|
- model_id: dashboard_summary
|
|
purpose: "운영 대시보드 상태"
|
|
source: QuantEngine.Infrastructure.Repositories.CollectionRepository
|
|
consumers:
|
|
- src/dotnet/QuantEngine.Web/Pages/Admin/Dashboard/Index.cshtml.cs
|
|
- src/dotnet/QuantEngine.Web/Endpoints/CollectionEndpoints.cs
|
|
fields:
|
|
- LastRunId
|
|
- LastRunAt
|
|
- SuccessCount
|
|
- ErrorCount
|
|
- SnapshotCount
|
|
staleness_budget: "5m"
|
|
- model_id: collection_runs
|
|
purpose: "최근 수집 실행 이력"
|
|
source: QuantEngine.Infrastructure.Repositories.CollectionRepository
|
|
consumers:
|
|
- src/dotnet/QuantEngine.Web/Pages/Admin/Collection/Index.cshtml.cs
|
|
- src/dotnet/QuantEngine.Web/Endpoints/CollectionEndpoints.cs
|
|
fields:
|
|
- RunId
|
|
- State
|
|
- StartedAt
|
|
- FinishedAt
|
|
- SuccessCount
|
|
- ErrorCount
|
|
staleness_budget: "5m"
|
|
- model_id: price_history_summary
|
|
purpose: "가격 히스토리 요약"
|
|
source: QuantEngine.Infrastructure.Repositories.CollectionRepository
|
|
consumers:
|
|
- src/dotnet/QuantEngine.Web/Pages/Admin/Collection/Index.cshtml.cs
|
|
- src/dotnet/QuantEngine.Web/Endpoints/CollectionEndpoints.cs
|
|
fields:
|
|
- Ticker
|
|
- Count
|
|
- FirstDate
|
|
- LastDate
|
|
staleness_budget: "15m"
|
|
|
|
rules:
|
|
- "read model은 조회 전용이어야 한다."
|
|
- "운영 화면은 직접 원장 테이블을 조립하지 않는다."
|
|
- "쓰기 로직은 read model에 의존하지 않는다."
|
|
- "staleness_budget이 명시되지 않은 조회는 금지한다."
|
|
|
|
notes:
|
|
- "의도된 역정규화는 허용하되, 원장과 동일 테이블로 재사용하지 않는다."
|