Skip to content

Feat(Bid) : 레디스에 재고 등록 및 제거 할 때 발생할 수 있는 데이터 유실 방지를 위해 Outbox 패턴 적용 #124

Merged
yoo20370 merged 10 commits intodevfrom
feat/outbox-redis-stock
Dec 30, 2025
Merged

Feat(Bid) : 레디스에 재고 등록 및 제거 할 때 발생할 수 있는 데이터 유실 방지를 위해 Outbox 패턴 적용 #124
yoo20370 merged 10 commits intodevfrom
feat/outbox-redis-stock

Conversation

@yoo20370
Copy link
Contributor

@yoo20370 yoo20370 commented Dec 29, 2025

변경 된 내용

레디스에 재고 등록 및 제거 시 데이터 유실에 대한 대처가 없음 그러므로 Outbox를 사용하여 데이터 유실을 방지하고자 함

  • Bid가 생성된 후, 직접 Redis에 재고를 등록하던 로직을 Outbox에 등록하고, 이후 스케줄러에 의해 Outbox에서 꺼내서 Redis에 등록하도록 수정
  • end()로 인해 판매 경쟁이 종료되었을 때, Redis에서 관리되는 재고 정보를 제거하기 위한 레디스 명령을 Outbox에 등록하고, 이후 스케줄러에 의해 Outbox에서 꺼내어 Redis에서 제거하도록 수정
  • 레디스 등록 및 제거를 위한 Outbox Handler 클래스 추가 (SaveStockHandler, ClearStockHandler)
  • Outbox 핸들러 클래스들을 Factory 클래스에 등록

참고사항

  • 실시간 판매 경쟁할 때 레디스에 선착순 인원으로 선정되어 Winner 정보와 멱등 정보를 등록할 때는 Outbox 패턴을 사용하면
    DB 부하를 그대로 받게 되므로 이 경우는 Outbox 패턴이 아닌 다른 방식으로 해결함

@yoo20370 yoo20370 self-assigned this Dec 29, 2025
@yoo20370 yoo20370 merged commit d775b7a into dev Dec 30, 2025
1 check passed
@yawning5
Copy link
Contributor

yawning5 commented Jan 2, 2026

Redis 메모리 관리명령을 DB 에 넣어놓는 방식은 신기하네요

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants