Files
KArtSell.Aegis/docs/v12_2/05_BE_FE_JOB_IMPLEMENTATION_STANDARD.md
T
kjh2064 dcd1322d41
ci / backend (push) Failing after 12s
ci / frontend (push) Failing after 19s
ci / static (push) Failing after 45s
Initial commit: Add project files
2026-08-02 05:15:36 +09:00

1.8 KiB

Backend·Frontend·Hangfire 구현 표준

1. Backend Vertical Slice

  1. Endpoint: 권한, 헤더, 입력 검증, ProblemDetails
  2. Application: 멱등키, PIT context 조회, 트랜잭션, Outbox
  3. Domain Policy: 순수 결정과 불변조건
  4. Infrastructure: Dapper SQL, Npgsql, Adapter
  5. Event/Job: schema version, Inbox, retry/dead-letter
  6. Tests: unit/integration/data/failure/replay/E2E
  7. Ops: metric/alert/runbook/rollback

생산형 결정 Command는 PositionLotId, AsOf, IdempotencyKey 같은 최소 식별자만 받는다. Evidence/Model/Config/DataVersion은 승인된 서버 PIT Context에서 조회한다. 연구 Vector Endpoint는 저장·공개·주문 흐름과 분리한다.

2. 공통 오류

  • 400: 구문/필수 헤더
  • 401/403: 인증/권한
  • 409: 승인 Evidence 부재, 버전 충돌, 상태전이 충돌
  • 422: 도메인 수용기준 위반
  • 503: 의존 source/DB/Capability unavailable

3. Frontend 책임

상태 소유
Server state TanStack Query
Session/Role/UI preference Pinia
Form vee-validate + Zod
URL 공유상태 vue-router
대량 운영목록 AG Grid server-side
Runtime contract Zod request/response

Pinia에 서버 도메인 데이터를 복제하지 않는다. 모든 화면에 AG Grid를 사용하지 않는다. Evidence/Version/Staleness/Permission은 공통 컴포넌트로 제공하되 3회 반복 원칙을 따른다.

4. Hangfire

Queue는 control/market-data/fundamentals/feature-risk/recommendation/evaluation/reconciliation/research/backfill로 분리한다. 모든 Job은 다음을 가진다.

JobRunId, JobType, JobVersion, ScopeKey, IdempotencyKey, Watermark, Attempt, VersionSet, InputHash, TraceId, Heartbeat

Blind retry, 현재값 overwrite, 고객 SLA Queue와 연구 Backfill의 자원 공유를 금지한다.