“스케줄이 또 안 돌았어요” — 우리가 Temporal을 선택한 이유
백엔드
“스케줄이 또 안 돌았어요” — 우리가 Temporal을 선택한 이유
두줄요약
Jenkins 기반 스케줄 운영의 한계를 해결하기 위해 Temporal을 도입했습니다. 자동 재시도와 실행 이력 가시성으로 출고지시와 주문수집을 더 안정적으로 자동화했습니다.
문제 상황
- Jenkins crontab 기반 출고지시 스케줄의 반복 실패와 사후 인지 지연
- 별도 모니터링 Job까지 함께 멈추는 구조적 한계와 수동 재실행 부담
- 로그·DB·콘솔을 따라가는 방식의 낮은 가시성과 복구 지연
원인 분석
- 스케줄 실행과 상태 추적을 Jenkins에 의존한 운영 구조
- cron 중심 설계로 인한 이벤트 기반 트리거 대응 한계
- 비즈니스 흐름 단위의 실행 이력과 분기 관리 부재
해결 방법
- Temporal Workflow Engine 도입으로 스케줄, 재시도, 상태 관리를 플랫폼화
- Workflow와 Activity를 비즈니스 정책과 단위 작업 기준으로 분리
- 출고지시와 주문수집 일부를 Workflow로 전환해 자동화와 가시성 확보
성능/운영 포인트
- 자동 재시도와 Backoff/Timeout으로 일시 오류의 무인 복구
- Temporal UI 기반 타임라인과 Activity input/output 관찰
- Batch와 Temporal 공존 기간의 디버깅·온콜 가이드 정비 필요