반응형
복잡한 비즈니스 로직, Temporal 워크플로우로 다루기
현대 시스템은 단순히 함수를 호출하고 끝나는 구조가 아닙니다.
결제 → 승인 → 재고 차감 → 알림 발송처럼,
여러 개의 트랜잭션이 순차적 혹은 병렬적으로 동작하는 복잡한 프로세스가 많습니다.
이런 구조를 단순 코드나 큐 기반으로 관리하면 점점 복잡성이 증가 합니다.

기존 워크플로우 관리 방식의 한계
- 상태 관리 복잡: 각 단계의 상태 (진행중, 실패, 완료)를 직접 추적해야한다
- 장애 복구 어려움: 중간 단계 실패 시, 어디서 멈췄는지 파악하기 어려움
- 확장성 부족: 새로운 로직이 추가되면 기존 코드 수정 필요
- 네트워크 불안정에 취약: 외부 API 장애나 타임아웃 시 재처리 로직 직접 구현 필요
구현이 불가능 하진 않지만 비즈니스로직 구현이 어려워지거나 불편해질 수 있습니다.
Temporal 워크플로우
앞선 문제들에 공감하고, 더 안정적으로 비즈니스로직을 운영 및 구현하고싶다면 워크플로우 오케스트레이션을 도입해볼 수 있습니다.
Temporal 적용 시 내부적으로 일어나는 일
1. Client가 Workflow 시작 요청 → Temporal Cluster 저장
→ 모든 실행 상태(Event History)가 DB에 기록됨
2. Worker가 Task Queue에서 Activity 실행
→ 네트워크 장애나 예외 발생 시 자동 리트라이
3. Activity 성공 시 다음 단계로 진행
→ 실패한 단계만 재시도 가능 (partial rollback 지원)
4. 전체 완료 시 Workflow 성공으로 마킹
이작업은 여러작업을 순서대로 or 병렬 실행하면서 복잡한 비즈니스 프로세스를 자동화 하는것 을 의미함
반응형
'프로그래밍 > 대용량 시스템에 대한 이해' 카테고리의 다른 글
| Kafka + Debezium을 활용한 CDC 활용 패턴 (0) | 2025.11.05 |
|---|---|
| 대용량 트래픽 아키텍쳐 정리 (0) | 2025.11.05 |
| 완화전략 - Backpressure, Throttling 이란? (0) | 2023.12.01 |
| kafka란? - 카프카 기초 다지기 1 (1) | 2023.02.19 |
| Kafka 설치 및 구동 방법 (0) | 2023.02.18 |