Timeout을 늘리는 대신 상태를 영속화한다
workflow/step, replay, idempotency, approval과 Queue 경계
장기 실행과 사람 승인은 HTTP 요청 수명에 맞지 않습니다. 오케스트레이션은 workflow, 재시도·영속화 가능한 단위는 step으로 나누고 side effect를 뒤로 밀며 idempotency key를 사용합니다. 단순 fan-out은 Queue가 더 작고 명확할 수 있습니다.
| 요구 | Workflow | Queue |
|---|---|---|
| 여러 단계 상태·재개 | 적합 | consumer가 직접 관리 |
| 사람 승인 대기 | 적합 | 별도 상태 저장 필요 |
| 대량 독립 fan-out | 과할 수 있음 | 적합 |
| step별 retry·보상 | 내장 계약 | consumer 계약 |
- 재개 지점 정의외부 event·승인·오류 뒤 어디서 이어갈지 정합니다.
- 작은 step재시도 가능한 결정적 작업과 side effect를 분리합니다.
- Idempotency외부 write와 메시지마다 중복 방지 키를 둡니다.
- 보상·timeout승인 만료·실패·취소의 compensation을 설계합니다.