RETRY SAFETY

멱등한 처리와 위험한 재시도

재시도 자체는 필수지만, 같은 부작용이 두 번 발생하지 않도록 결과를 식별할 수 있어야 한다.

멱등 처리
비멱등 위험
고유 제약
멱등한 처리

event_id가 이미 있으면 같은 결과를 반환한다. insert unique, upsert, 상태 전이가 핵심이다.

event_iduniquesame result
비멱등 처리

중복 메시지마다 포인트를 더하거나 결제를 다시 승인하면 결과가 달라진다.

duplicatedouble effect
구분
안전한 접근
위험한 접근
포인트

적립 이벤트 ID로 1회만 반영

메시지 수신마다 balance += amount

결제

결제 요청 키로 기존 승인 결과 반환

타임아웃 후 새 승인 요청 생성