Temporal은 Spring Boot 애플리케이션에서 재시도, 타임아웃, 장기 실행 워크플로우 관리를 용이하게 해주는 워크플로우 엔진임 ⚙️
마이크로서비스 아키텍처에서 발생하는 복잡한 장애 처리 로직을 Temporal이 자동 재시도, 타임아웃 처리, 장애 복구 등의 기능을 통해 해결해줌 🛠️
Temporal은 비즈니스 로직을 일반 Java 코드로 작성할 수 있게 해주며, 복잡한 설정이나 YML 설정 없이도 사용 가능함 💡
Temporal 아키텍처에서 '활동(Activities)'은 실제 수행되는 작업(예: 항공편 예약, 호텔 예약)을 의미하고, '워크플로우(Workflow)'는 이러한 활동들을 트리거하는 주체를 의미함 ✈️
워크플로우 클라이언트는 gRPC를 통해 Temporal 서버와 통신하며, Temporal 서버는 워크플로우 메타데이터 및 이벤트를 추적하는 History Service, 작업 큐를 관리하는 Matching Service, 실제 작업을 수행하는 Worker 등으로 구성됨 🗂️
Temporal UI를 통해 워크플로우 및 활동의 상태, 재시도 횟수, 타임아웃 처리 등을 시각적으로 확인할 수 있음 📊
Temporal을 사용하면 개발자는 복잡한 장애 처리 로직 대신 비즈니스 로직에 집중할 수 있으며, 애플리케이션의 안정성과 유지보수성을 향상시킬 수 있음 ✨
Docker Compose를 사용하여 Temporal 서버, 데이터베이스(PostgreSQL), Temporal UI를 로컬 환경에서 쉽게 실행할 수 있음 🐳
워크플로우와 액티비티 구현 후, 워커에 등록하여 Temporal 서버가 작업을 처리하도록 구성함 ✅