RETRY SAFETY
멱등한 처리와 위험한 재시도
재시도 자체는 필수지만, 같은 부작용이 두 번 발생하지 않도록 결과를 식별할 수 있어야 한다.
멱등 처리
비멱등 위험
고유 제약
멱등한 처리
event_id가 이미 있으면 같은 결과를 반환한다. insert unique, upsert, 상태 전이가 핵심이다.
event_iduniquesame result
비멱등 처리
중복 메시지마다 포인트를 더하거나 결제를 다시 승인하면 결과가 달라진다.
duplicatedouble effect
구분
안전한 접근
위험한 접근
포인트
적립 이벤트 ID로 1회만 반영
메시지 수신마다 balance += amount
결제
결제 요청 키로 기존 승인 결과 반환
타임아웃 후 새 승인 요청 생성