Backend
Redis Streams 기반 비동기 감사 파이프라인 구축
Redis Streams Consumer Group으로 감사 이벤트 파이프라인을 안정적으로 운영하는 방법을 설명합니다.
Redis Streams 기반 비동기 감사 파이프라인 구축
감사 이벤트 파이프라인의 목표는 단순 처리량이 아니라 "유실 없이 재처리 가능한 구조"입니다.
권장 구조
- Producer: 이벤트 발행
- Stream + Consumer Group: 병렬 처리
- Worker: 핸들러 실행 + ACK
- Dead Letter Stream: 반복 실패 격리
구현 핵심
1) >와 0을 분리 처리
>: 신규 메시지0: Pending 재처리
재시작 후 0 처리를 빼면 유령 pending이 남습니다.
2) ACK 시점
핸들러 성공 후에만 ACK해야 at-least-once가 유지됩니다.
3) 재시도 정책
delivery count 기반으로 최대 재시도 횟수를 제한하고, 초과 시 DLQ로 이동합니다.
4) 메모리 관리
스트림은 누적됩니다. XTRIM 정책을 운영 기준으로 반드시 설정하세요.
운영 체크리스트
- pending 길이, 재시도율, DLQ 유입량 모니터링
- consumer 멈춤 감지 및 자동 복구
- 메시지 스키마 버전 관리
- 재처리 도구(범위 replay) 준비
결론
Redis Streams는 빠른 큐가 아니라 상태 있는 로그입니다. pending과 재시도를 제대로 관리할 때만 신뢰 가능한 감사 파이프라인이 됩니다.