IOSOR 가이드

전송 API 멱등성: 중복, 재시도, 그리고 돈

선불 전송 API 개발자 가이드——멱등 키, 안전한 재시도, 중복 방지, 원장 친화적 상관관계. 엔지니어링 실수가 재무 사고로 번지지 않게.

타임아웃은 발생합니다. 로드 밸런서는 재시도합니다. 모바일 클라이언트는 버튼을 두 번 누릅니다. 멱등성이 없다면 «한 번 보내기» 제품은 선불 이중 차감과 중복 OTP 경험으로 변질됩니다. 이 가이드는 모든 중복 내역이 지갑에 기록되는 화이트라벨 선불 메시징 API를 통합하는 엔지니어 및 기술 제품 리드를 위한 것입니다. IOSOR은 인증된 호출, 대조 가능한 차감, 외부 브랜드의 페이로드를 노출하지 않는 클라이언트 오류 등 자금 흐름을 고려한 통합을 요구합니다. 월간 플랫폼 사용량이 USD 1,000 이상인 경우 중복 방지 규율은 필수입니다. 모든 전송을 네트워크 호출 이전에 원장 이벤트로 처리하여 재무팀과 운영팀이 동일한 데이터를 공유하도록 하십시오.

왜 중복이 돈 문제가 되는가

실패 모드 사용자 경험 지갑 기록
클라이언트 타임아웃 + 무분별한 재시도 OTP/알림 두 개 수신 두 번의 차감 발생
비멱등 웹훅 핸들러 중복된 부수 효과 발생 성공 상태의 혼선
자동 재시도 중 사용자 재전송 사용자 불만 증가 유닛 비용 중복 발생
상관관계 누락 «실패함» 문의 발생 원장 행 불일치

데모 환경에서는 이러한 실수가 용납될 수 있습니다. 하지만 실제 운영 환경의 재무 데이터는 그렇지 않습니다. 선불 방식의 높은 트래픽 환경에서 무분별한 재시도는 로그의 각주가 아닌 대규모 정산 프로젝트가 됩니다. 무한 루프로 인해 예산 소진율이 200%가 된 상황을 CFO에게 설명해 본 적이 있습니까? 정상 경로와 타임아웃 경로를 동일한 차감 규칙으로 설계하십시오. 데이터베이스 트랜잭션이 로컬 상태 변경과 외부 제공자의 메시지 ID 기록을 모두 포함하도록 보장해야 합니다.

재시도를 견디는 멱등 키

신뢰할 수 있는 전송 경로는 TCP 시도 단위가 아닌 비즈니스 의도 단위로 고유한 클라이언트 생성 키를 수용합니다. 이 키는 명확한 TTL 창 내에서 재시행 시 동일한 수락 결과를 반환해야 합니다. 이를 통해 동일한 의도에 대해 두 번째 차감이 발생하는 것을 방지합니다. 키는 메시지 ID 및 선불 참조 번호와 함께 기록되어야 합니다. 또한 타임아웃, 게이트웨이 재시도, 지원팀의 재전송 과정에서도 작동해야 합니다. 만약 유일한 해결책이 «타임아웃 시간 연장»뿐이라면, 그것은 진정한 멱등성 설계가 아닙니다. 키는 런타임과 워커 전체에서 안정적이어야 하며, 동일한 클릭에 대해 다른 프로세스가 새 키를 생성해서는 안 됩니다.

재시도 예산 vs 사용자 재전송

자동 재시도에는 최대 시도 횟수, 백오프 정책, 재시도 가능한 오류 클래스를 포함하는 예산이 필요합니다. 사용자가 직접 실행하는 재전송은 별도의 속도 제한과 비용이 발생하는 다른 제품 액션입니다. 이를 혼용하면 불안정한 네트워크 상태가 주말의 지갑 사고로 이어집니다. 두 경우 모두 잔액 부족 시 중지 기능과 명확한 거절 사유를 결합하여 제품팀과 재무팀이 하나의 진실을 공유하게 하십시오. 재시도가 안전한 HTTP 상태 코드와 플랫폼 코드를 정의하고, 나머지는 사람이 개입하거나 새로운 비즈니스 의도가 필요한 하드 스톱으로 처리하십시오. 여기서 함정은 500 오류가 전송 실패를 의미한다고 단정하는 것입니다. 종종 제공자의 원장은 업데이트되었지만 응답만 네트워크에서 유실된 경우가 있습니다.

구매자 / 엔지니어링 체크리스트

  1. 문서화된 멱등 키 의미론 및 TTL 설정.
  2. 하나의 의도에 대해 한 번의 차감만 발생함을 증명하는 리플레이 테스트.
  3. 자동 재시도 예산과 사용자 재전송 로직의 분리.
  4. 요청, 메시지 상태, 선불 원장을 관통하는 상관관계 ID(Correlation ID).
  5. 실제 경로를 테스트하는 스테이징 환경 구축 — 모의 테스트는 실제 론칭이 아닙니다.
  6. 전송 자격 증명에 대한 키 관리 및 최소 권한 원칙 적용.
  7. 원래의 의도 키를 잃지 않고 429 및 503 코드를 처리하는 로직.
  8. 높은 중복 키 거부율에 대한 자동 알림 설정.

위험 신호

  • 멱등 키 없이 «200 응답이 올 때까지 재시도»하는 방식.
  • 부수 효과를 두 번 트리거하는 비멱등 웹훅 핸들러.
  • 로그나 지원 티켓에 노출되는 전체 비밀 키 또는 인증 토큰.
  • 업스트림 브랜드의 페이로드나 내부 스택 트레이스를 최종 사용자에게 노출하는 오류.
  • 특정 중복 전송이 방지되었음을 재무팀에 증명할 방법이 없는 상태.
  • 트랜잭션의 유일성을 보장하기 위해 타임스탬프만 사용하는 경우.

IOSOR로 시작하기

보내기 콘솔에서 클라이언트가 만든 멱등 키로 OTP 또는 알림 하나를 쏜다. 클라이언트 타임아웃을 강제하고 키 TTL 안에서 같은 요청을 다시 보낸다. prepaid ledger 를 연다. 그 의도는 차변 하나와 사용자가 보는 메시지 하나여야 한다. 두 줄이면 키가 재시도를 못 버틴 것이다. 복도를 Live 로 두기 전에 TTL 과 핸들러를 고쳐라.

IOSOR 핵심 요약

할 일: 보내기를 먼저 ledger 사건으로 보라. 멱등 키는 업무 의도마다 유일하며 TCP 시도마다가 아니다. 자동 재시도에는 예산이 있다. 사용자 재전송 탭은 다른 제품 동작이며 자체 prepaid 비용이 있다.

하지 말 일: 키 없이 200 까지 두드리지 마라. 비멱등 webhook 이 두 번째 부작용을 만들게 두지 마라. 한 탭에 OTP 두 개는 돈 버그이지 네트워크 이야기가 아니다.

이 가이드가 도움이 되었나요?

관련 가이드