-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
배경
Redis 선처리 + 비동기 반영 구조에서는 Redis와 RDB projection 간 일시적 불일치가 발생할 수 있다.
또한 Redis 장애/유실/교체 상황에서는 재적재(rebuild) 전략이 필요하다.
구현 내용
1. reconciliation 배치 구현
주기적으로 최근 변경 SKU 또는 전체 SKU를 대상으로 비교:
- Redis:
available/reserved/sold/version - RDB projection:
available/reserved/sold/last_version
비교 규칙 예시:
redis.version == rdb.last_version인데 수량 다름 -> 오염/버그 의심redis.version > rdb.last_version-> consumer lag 또는 미처리 이벤트 의심rdb.last_version > redis.version-> Redis 유실/재구축 필요 의심
2. lag / pending / DLQ 점검 로직
- stream/kafka consumer lag 수집
- pending message 수집
- 실패 이벤트 재처리 경로 정의
3. Redis rebuild 기능 구현
- 기준: RDB projection
- Redis 상태를 projection 기준으로 재적재
- 필요 시 전체 rebuild / SKU 단위 rebuild 지원
4. 운영 알림 기준 정의
- version mismatch
- projection 반영 지연
- pending 증가
- rebuild 필요 SKU 감지
5. 운영 문서화
- 장애 발생 시 점검 순서
- rebuild 실행 방법
- reconciliation 결과 해석 방법
체크리스트
- reconciliation 배치 구현
- Redis/RDB version 비교 로직 구현
- mismatch 탐지 로직 구현
- consumer lag/pending 모니터링 구현
- 재처리 절차 정의
- Redis rebuild 기능 구현
- 운영 알림 조건 정의
- 운영 문서 작성
의존관계
선행
- event log / projection consumer 구현
후행
- 운영 고도화
- 필요 시 외부 시스템(ERP/물류) 연동 확장
작업 순서
- reconciliation 비교 기준 정의
- 배치 구현
- lag/pending 모니터링 추가
- rebuild 기능 구현
- 운영 문서 작성
완료 조건
- Redis와 RDB projection의 차이를 탐지할 수 있다.
- mismatch 발생 시 원인 분류가 가능하다.
- Redis 유실/장애 시 projection 기준 rebuild가 가능하다.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels