# Milestone: 내구성 있는 Workflow Runtime ## 위치 - Roadmap: [ROADMAP.md](../../../ROADMAP.md) - Phase: [PHASE.md](../PHASE.md) ## 목표 수집·정제·인덱싱·평가·adaptation step을 동일한 영속 상태와 실행 계약으로 처리한다. worker 중단과 timeout에도 lease 소유권, idempotency와 artifact 결과를 기준으로 중복 부작용 없이 재시도할 수 있게 한다. ## 상태 [계획] ## 구현 잠금 - 상태: 해제 - SDD: 필요 - SDD 문서: [SDD.md](../../../sdd/workflow-automation/durable-workflow-runtime/SDD.md) - SDD 사유: workflow와 step 상태 머신, lease, retry, cancel, Protobuf 진행 이벤트 계약을 변경한다. - 잠금 해제 조건: - [x] SDD 잠금이 해제되어 있다. - [x] SDD 사용자 리뷰가 없거나 승인/해결되었다. - [x] Acceptance Scenario가 Milestone 기능 Task와 연결되어 있다. - [x] Evidence Map이 완료 시 Roadmap Completion과 최종 검증 evidence로 검증 가능하게 연결되어 있다. - 결정 필요: 없음 ## 범위 - immutable workflow definition version과 run·step state machine - PostgreSQL `SKIP LOCKED` lease, heartbeat, expiry와 ownership 검증 - idempotency, retry backoff, terminal failure, cancel과 timeout - Go executor registry와 out-of-process Python executor adapter - progress event, artifact manifest와 결과 반영 - worker crash·restart와 orphan lease 회수 ## 기능 ### Epic: [runtime] 영속 실행 상태 동일 step이 여러 worker에서 동시에 부작용을 만들지 않도록 실행권을 제어한다. - [ ] [run-state] workflow run과 step run의 허용 상태 전이와 parent 완료 집계를 구현한다. - [ ] [lease-heartbeat] lease 획득·갱신·만료·회수를 ownership 조건으로 처리한다. 검증: 경쟁 worker와 worker crash 통합 테스트에서 단일 유효 owner만 완료 처리한다. - [ ] [retry-idempotency] retryable·terminal 오류, backoff와 idempotency key를 적용해 중복 결과를 방지한다. - [ ] [cancel-timeout] 대기·실행 step의 취소와 deadline 초과를 Go·Python executor에 전파한다. ### Epic: [executor] 실행기 상호운용 언어와 ML 프레임워크가 달라도 동일한 진행·결과 계약을 사용한다. - [ ] [executor-routing] capability와 executor kind에 따라 Go 또는 Python executor를 선택하고 호환되지 않는 job을 실행 전에 거부한다. - [ ] [progress-artifacts] 순서 있는 progress event, 결과 payload와 content-addressed artifact manifest를 영속 상태에 반영한다. - [ ] [restart-smoke] worker 재시작 뒤 만료 lease를 회수하고 완료·실패 상태가 유실되지 않는다. 검증: PostgreSQL과 Go/Python worker를 사용한 restart smoke가 통과한다. ## 완료 리뷰 - 상태: 없음 - 요청일: 없음 - 완료 근거: 모든 기능 Task와 검증 충족 및 구현 잠금 해제 여부를 완료 시 기록한다. - 검토 항목: 경쟁 lease, crash recovery, retry와 Go/Python field smoke - agent-ui 상태 반영: 해당 없음 - 리뷰 코멘트: 없음 ## 범위 제외 - 범용 DAG 편집기와 외부 workflow 엔진 도입 - workflow step 내부의 RAG 품질 정책 - production release 자동 승격 ## 작업 컨텍스트 - 관련 경로: `packages/go/workflow/`, `packages/python/`, `api/proto/`, `db/queries/workflows.sql` - 표준선(선택): PostgreSQL lease queue, at-least-once 실행과 idempotent side effect - 선행 작업: [플랫폼 스캐폴드 기준선](../../platform-foundation/milestones/platform-scaffold-baseline.md) - 후속 작업: [수집과 Dataset 수명주기](../../knowledge-lifecycle/milestones/ingestion-and-dataset-lifecycle.md), [지속 갱신 Orchestration](continuous-refresh-orchestration.md) - 확인 필요: 없음