1.3 KiB
1.3 KiB
workflow
목적 / 책임
Task 생성, 조회, 목록, enqueue 가능 상태 판단 등 핵심 작업 흐름의 유스케이스를 담당한다.
포함 경로
internal/workflow/— task 상태 모델과 workflow service
제외 경로
internal/storage/,internal/db/— 영속성 구현internal/http/— HTTP 요청/응답 어댑터internal/scheduler/— River job 실행
주요 구성 요소
TaskStatus— task 상태 enumCreateTaskInput— 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 계약으로 노출하지 않는다.