Temporal을 활용한 워커플로우 패턴 :: 잡다한 프로그래밍
반응형

복잡한 비즈니스 로직, Temporal 워크플로우로 다루기

현대 시스템은 단순히 함수를 호출하고 끝나는 구조가 아닙니다.
결제 → 승인 → 재고 차감 → 알림 발송처럼,
여러 개의 트랜잭션이 순차적 혹은 병렬적으로 동작하는 복잡한 프로세스가 많습니다.

이런 구조를 단순 코드나 큐 기반으로 관리하면 점점 복잡성이 증가 합니다.

기존 워크플로우 관리 방식의 한계

  • 상태 관리 복잡: 각 단계의 상태 (진행중, 실패, 완료)를 직접 추적해야한다
  • 장애 복구 어려움: 중간 단계 실패 시, 어디서 멈췄는지 파악하기 어려움
  • 확장성 부족: 새로운 로직이 추가되면 기존 코드 수정 필요
  • 네트워크 불안정에 취약: 외부 API 장애나 타임아웃 시 재처리 로직 직접 구현 필요

구현이 불가능 하진 않지만 비즈니스로직 구현이 어려워지거나 불편해질 수 있습니다.

 

Temporal 워크플로우

앞선 문제들에 공감하고, 더 안정적으로 비즈니스로직을 운영 및 구현하고싶다면 워크플로우 오케스트레이션을 도입해볼 수 있습니다.

Temporal 적용 시 내부적으로 일어나는 일

1. Client가 Workflow 시작 요청 → Temporal Cluster 저장
→ 모든 실행 상태(Event History)가 DB에 기록됨
2. Worker가 Task Queue에서 Activity 실행
→ 네트워크 장애나 예외 발생 시 자동 리트라이
3. Activity 성공 시 다음 단계로 진행
→ 실패한 단계만 재시도 가능 (partial rollback 지원)
4. 전체 완료 시 Workflow 성공으로 마킹

이작업은 여러작업을 순서대로 or 병렬 실행하면서 복잡한 비즈니스 프로세스를 자동화 하는것 을 의미함

 

반응형

+ Recent posts