마이크로 서비스 (MSA)로 구축.

프로젝트 제작 이유 : 대규모 트래픽을 빠르고 효율적으로 처리하며 데이터 안전성과 일관성을 지키는 프로젝트

해당 구조에서

Order service는 outbox를 이용하여 데이터 원자성을 유지했는데 Stock Service에서 Redis 재고를 깎았지만 kafka로 메세지 전송을 실패하면 어떻게 복구를 할지 고민중입니다.


1. Order Service처럼 Stock Service도 Outbox 및 Stock DB를 이용하기

장점 : 원자성 보장

단점 : "트래픽을 빠르고 효율적으로 처리하는" 목표와 어긋남


2. Stock Service에서 재고만 조회 후 Kafka로 메세지 전송이 성공하면 재고를 깎기

장점 : 빠름

단점 : "데이터 안전성과 일관성을 지키는" 목표와 어긋남, Redis에서도 재고 차감이 안 될 수도 있음


또는 형님들의 좋은 방법이 떠오르신다면 말씀해주세요 ㅜㅜ

* 조언도 감사히 받겟씁니다