Skip to content

웨이팅 등록 멱등성 처리의 race condition 해결 #350

@coderabbitai

Description

@coderabbitai

문제 설명

WaitingIdempotencyRepositoryfindByKeysaveIdempotencyValue 메서드 사이에 race condition이 존재합니다.

WaitingService.registerWaiting 메서드에서 멱등성 검증과 저장이 분리되어 있어, 동시에 같은 idempotent key로 요청이 들어올 경우 두 요청 모두 멱등키가 존재하지 않음을 확인한 후 처리 로직을 실행하게 되어 중복 처리가 발생할 수 있습니다.

관련 파일

  • nowait-app-user-api/src/main/java/com/nowait/applicationuser/waiting/redis/WaitingIdempotencyRepository.java
  • nowait-app-user-api/src/main/java/com/nowait/applicationuser/waiting/service/WaitingService.java

참고 링크

고려사항

  • 원자적 연산 구현 필요 (SETNX, Lua 스크립트, 분산 락 등)

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingenhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions