핵심 요약
RIDI가 Transactional Outbox 패턴의 message-relay를 개선해 락 대기와 불필요한 조인을 제거하고, MySQL 8.0 NOWAIT를 도입해 락 경합을 최소화했습니다. 또한 Redis 의 pessimistic lock을 제거하고 lock 관리를 message 테이블 중심으로 재설계했습니다.
구현 방법
- message 테이블 단일화 및 left join 제거
- SELECT FOR UPDATE에 NOWAIT 적용으로 락 대기 방지
- Redis 락 제거 및 트랜잭션 기반 락 관리로 코드 간소화
주요 결과
- 일관된 쿼리 성능 유지 및 안정성 증가
- 코드 간소화와 운영 편의성 향상
- deadlock 위험 감소와 시스템 신뢰성 향상



