스케줄 안정성을 위한 Temporal 도입 이유
우리는 출고지시 스케줄의 불안정성 고민 끝에 Temporal을 선택하게 되었습니다. 초기의 Jenkins crontab으로는 급증하는 물량과 요구 사항을 충족할 수 없었고, 이로 인해 발생하는 다양한 문제들에 직면하게 되었습니다. 이러한 이유로 우리는 Temporal을 도입하여 안정적이고 자동화된 시스템을 구축하려고 하였습니다. 실패 대응 시스템 구축의 필요성 무신사의 OMS(주문관리시스템)에서 출고지시의 중요성은 말할 필요도 없습니다. 이는 물류센터의 하루를 시작하는 신호이기도 하며, 스케줄의 실행이 실패할 경우 배송 지연으로 이어질 수 있습니다. 초기에는 Jenkins의 cron 스케줄로 충분했지만, 점차 물류량이 증가함에 따라 점점 더 많은 문제가 발생했습니다. Jenkins 기반 스케줄은 문제가 발생해도 자동으로 알려주지 않아 별도의 모니터링 job을 만들어야 했습니다. 하지만 이 모니터링조차 Jenkins의 한계로 인해 더 이상의 신뢰를 받을 수 없게 되었습니다. 우리는 어떻게든 이러한 실패를 보다 효과적으로 관리해야 할 필요성이 커졌고, 이를 통해 우리의 시스템이 실패에 민감하지 않도록 구축해야겠다는 결론에 도달했습니다. وقت이 지연되는 배달로 인해 고객의 신뢰를 잃는 것은 결코 바람직하지 않다는 것을 명심하며, 안정성을 위한 새로운 시스템이 절실히 요구되었습니다. Temporal은 장기 실행되는 비즈니스 프로세스를 관리하는 데 적합한 솔루션입니다. 자동 재시도 및 상태 관리와 같은 기능이 있어, 우리가 기대했던 실패 대응 시스템을 구축하는 데 큰 도움이 될 것으로 판단하였습니다. 이 시스템은 단순히 스케줄을 실행하는 데 그치지 않고, 전체적인 비즈니스 프로세스를 아우르는 기능을 제공합니다. 따라서 출고지시 스케줄의 안정성을 보장하는 데 최적의 선택이었습니다. 결론적으로, 실패를 놓치지 않고, 재시도를 통해 실패한 지점에서 자동으로 복구될 수 있는 Temporal의 기능은 우리 팀의 운영 리스크를 현저히 줄여줄 것이라 기대합니다. 가시성 ...