Inventory 서비스는 상품 재고 관리 기능을 제공합니다. Aurora PostgreSQL을 사용하여 재고 데이터를 저장하고, Reserve/Release 패턴을 통해 동시성 문제를 해결합니다. 재고 변경 시 Kafka 이벤트를 발행하여 다른 서비스와 연동합니다.
| 항목 | 내용 |
|---|
| 언어 | Go 1.21+ |
| 프레임워크 | Gin |
| 데이터베이스 | Aurora PostgreSQL |
| 캐시 | ElastiCache (Valkey) |
| 네임스페이스 | core-services |
| 포트 | 8080 |
| 헬스체크 | /healthz, /readyz |
아키텍처
주요 기능
1. 재고 조회
- SKU 기반 재고 조회
- 가용 수량, 예약 수량, 전체 수량 제공
2. 재고 예약 (Reserve)
- 주문 시 재고 예약
- 트랜잭션 기반 동시성 제어
- 재고 부족 시 에러 반환
3. 재고 해제 (Release)
- 주문 취소 시 예약 해제
- 예약 수량 범위 내에서 해제
4. 재고 업데이트
API 엔드포인트
| 메서드 | 경로 | 설명 |
|---|
| GET | /api/v1/inventory/:sku | 재고 조회 |
| POST | /api/v1/inventory/:sku/reserve | 재고 예약 |
| POST | /api/v1/inventory/:sku/release | 예약 해제 |
| PUT | /api/v1/inventory/:sku | |