nomadcode/agent-ops/rules/project/domain/workflow/rules.md
2026-05-19 10:27:13 +09:00

1.3 KiB

workflow

목적 / 책임

Task 생성, 조회, 목록, enqueue 가능 상태 판단 등 핵심 작업 흐름의 유스케이스를 담당한다.

포함 경로

  • internal/workflow/ — task 상태 모델과 workflow service

제외 경로

  • internal/storage/, internal/db/ — 영속성 구현
  • internal/http/ — HTTP 요청/응답 어댑터
  • internal/scheduler/ — River job 실행

주요 구성 요소

  • TaskStatus — task 상태 enum
  • CreateTaskInput — task 생성 입력
  • Service — workflow 유스케이스 구현
  • TaskEnqueuer — scheduler와의 경계 인터페이스

유지할 패턴

  • workflow는 storage와 scheduler를 인터페이스/서비스 경계로 호출한다.
  • 상태 전이 규칙은 canEnqueue처럼 workflow 도메인 안에서 명확하게 유지한다.

다른 도메인과의 경계

  • persistence: DB query와 트랜잭션 세부사항은 persistence에 둔다.
  • scheduler: 실제 River enqueue와 worker 실행은 scheduler에 둔다.
  • http-api: HTTP status code와 JSON 응답 형식은 http-api에 둔다.

금지 사항

  • workflow 서비스에 HTTP request/response 타입을 직접 의존시키지 않는다.
  • sqlc 생성 타입을 외부 API 계약으로 노출하지 않는다.