개요
서비스 사용자는 이벤트에 참여하여 할인 쿠폰을 발급받습니다.
이 이벤트는 선착순으로 한정된 쿠폰을 발급하기 때문에 동시다발적으로 많은 사용자가 접근할 것으로 예상됩니다.
이에 따라 높은 트래픽과 데이터 정합성을 유지하면서 서비스의 안정성을 확보하는 것이 핵심 과제입니다.
기술 선정 과정
- 1️⃣ 단일 서비스
- 2️⃣ 마이크로 서비스
- 3️⃣ 마이크로 서비스 + 메세지 큐 ✅
기술 선정 근거와 결론
기술 선정 근거
- 사용자 만족도를 위한 안정성
- 이벤트 서비스는 사용자 간 경쟁이 발생하기 때문에 높은 안정성이 필수입니다.
- 메시지 큐를 통해 이벤트 서비스와 쿠폰 서비스를 분리함으로써, 이벤트 서비스의 부하를 효과적으로 분산하고 장애 전파를 방지할 수 있습니다.
- 빠른 응답 속도
- 이벤트 서비스는 메시지 큐에 이벤트 참여 요청을 발행한 뒤 바로 사용자에게 성공 여부를 응답할 수 있습니다.
- 사용자는 이벤트 참여 여부를 즉각적으로 알 수 있어 더 나은 사용자 경험을 제공합니다.
- 유연한 쿠폰 지급 방식
- 쿠폰 발급은 실시간이 아니어도 되므로, 메시지 큐에서 수신된 요청을 일정 시간 후에 처리하는 방식으로 서버 부담을 줄일 수 있습니다.
- 예를 들어, 이벤트 참여 요청을 모아 배치 처리하거나, 비동기적으로 분산된 워커를 활용해 처리 속도를 조정할 수 있습니다.
- 확장성과 장애 격리
- 마이크로 서비스 아키텍처를 활용하면 이벤트 서비스와 쿠폰 서비스를 독립적으로 확장할 수 있습니다.
- 메시지 큐를 사용함으로써, 특정 서비스에 장애가 발생해도 다른 서비스가 정상적으로 동작할 수 있습니다.
- 경쟁 환경에 적합한 구조
- 이벤트 참여와 쿠폰 발급을 비동기적으로 분리함으로써 동시다발적인 요청 처리에 유리하며, 데이터 정합성을 유지하면서 높은 트래픽을 처리할 수 있습니다.
결론
이러한 이유로 **마이크로서비스 아키텍처와 메시지 큐**의 조합이 가장 적합한 선택으로 판단됩니다.
이는 안정성과 성능을 동시에 확보하며, 사용자의 만족도를 극대화할 수 있는 구조를 제공합니다.