sayu.day
Backend

Redis Streams 기반 비동기 감사 파이프라인 구축

Redis Streams Consumer Group으로 감사 이벤트 파이프라인을 안정적으로 운영하는 방법을 설명합니다.

발행 2025년 12월 30일1156

같은 주제에서 이어 읽기

Redis 기반 분산 락 가이드

Backend 안에서 이어지는 글

감사 이벤트 파이프라인의 목표는 단순 처리량이 아니라 "유실 없이 재처리 가능한 구조"입니다.

권장 구조

  1. Producer: 이벤트 발행
  2. Stream + Consumer Group: 병렬 처리
  3. Worker: 핸들러 실행 + ACK
  4. Dead Letter Stream: 반복 실패 격리

구현 핵심

1) >0을 분리 처리

  • >: 신규 메시지
  • 0: Pending 재처리

재시작 후 0 처리를 빼면 유령 pending이 남습니다.

2) ACK 시점

핸들러 성공 후에만 ACK해야 at-least-once가 유지됩니다.

3) 재시도 정책

delivery count 기반으로 최대 재시도 횟수를 제한하고, 초과 시 DLQ로 이동합니다.

4) 메모리 관리

스트림은 누적됩니다. XTRIM 정책을 운영 기준으로 반드시 설정하세요.

운영 체크리스트

  1. pending 길이, 재시도율, DLQ 유입량 모니터링
  2. consumer 멈춤 감지 및 자동 복구
  3. 메시지 스키마 버전 관리
  4. 재처리 도구(범위 replay) 준비

결론

Redis Streams는 빠른 큐가 아니라 상태 있는 로그입니다. pending과 재시도를 제대로 관리할 때만 신뢰 가능한 감사 파이프라인이 됩니다.

다음 읽기

이 생각이 이어지는 방향

Backend 더 보기
공유

읽은 뒤의 대화

읽은 뒤의 생각을 이어갑니다

질문, 반론, 조용한 후속 메모를 이 글 아래에 남길 수 있습니다.

sayu.day는 생각과 작업의 흔적을 천천히 정리하는 개인 출판물입니다.
직접 겪고 검토한 내용, 다시 읽을 만한 아이디어, 작업하며 남긴 메모를 모읍니다.
시간이 지난 글은 현재의 판단과 다를 수 있어 업데이트 맥락을 함께 남깁니다.

© 2026 sayu.day