요약
- 배치 시스템의 재시도 로직은 직접 구현보다 프레임워크 기능을 활용하는 것이 안정적이다
- Transaction Outbox 패턴과는 해결하는 문제가 다르며, 상호 보완적으로 사용할 수 있다
본문
프레임워크 재시도의 장점
- 이미 검증된 backoff, jitter 로직 제공
- 재시도 횟수, 간격 설정이 선언적
- 모니터링/메트릭 통합이 쉬움
- Dead Letter Queue 연동 등 실패 처리 패턴 내장
Transaction Outbox는 다른 문제를 해결
- DB 트랜잭션과 메시지 발행의 원자성 보장
- "처리는 됐는데 메시지 발행 실패" 같은 불일치 방지
권장 조합
Outbox로 메시지 발행을 안전하게 하고, 컨슈머 쪽 재시도는 프레임워크(Spring Retry, Kafka consumer retry 등)에 맡기는 조합이 깔끔하다.
직접 재시도 로직을 구현하면 edge case 처리가 복잡해지고, 결국 프레임워크가 이미 해결한 문제를 다시 풀게 되는 경우가 많다.
참고
- [Transaction Outbox 패턴](Transactional Outbox 패턴은 DB와 외부 시스템 간 일관성을 보장한다)