목록 보기
한꺼번에 짊어지던 배치를 내려놓고, 하나씩 흘려보내는 워크플로로
아키텍처

한꺼번에 짊어지던 배치를 내려놓고, 하나씩 흘려보내는 워크플로로

우아한 형제들
우아한 형제들
2026년 9월 8일

두줄요약

Temporal 도입 부담을 줄이기 위해 기존 인프라 위에 Flowkit이라는 자체 워크플로 라이브러리를 만들었습니다. 배치로 처리하던 접수지연 알림을 주문 단위 워크플로로 바꾸고, 재시도와 멱등성 정책도 선언적으로 다뤘습니다.

핵심 내용

  • Temporal 도입 부담을 줄이기 위해, Kotlin coroutine·Spring WebFlux·Reactive MongoDB 위에 자체 durable workflow 라이브러리 Flowkit을 설계
  • Workflow, Activity, Signal, Scheduler 네 개의 개념만으로 장기 실행 흐름과 상태 재개를 단순화
  • 배치로 처리하던 접수지연 알림을 주문 1건 = 워크플로 1개 구조로 전환해 피크타임 부담과 타이머 오차를 완화
  • Activity에 timeout, retry, idempotency, checkpoint 정책을 선언적으로 부여해 외부 호출 신뢰성을 보완

적용해볼 점

  • 시간 경과 기반 후처리 로직을 배치 대신 개별 워크플로로 분해하는 구조 검토
  • 재시도·멱등성·체크포인트를 활동 단위 정책으로 분리해 중복 실행 위험 완화

다음 읽기

#Spring WebFlux 주제를 이어서 읽기

Server-Sent Events로 실시간 알림 전달하기

MQTT 기반 알림의 제약을 해결하기 위해 AWS IoT와 SSE를 도입했습니다. 정형화된 메시지, 재전송, 수신 확인으로 실시간성과 안정성을 높였습니다.

우아한 형제들
우아한 형제들
백엔드

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...