본문으로 건너뛰기

서비스 개요

Multi-Region Shopping Mall 플랫폼은 20개의 마이크로서비스로 구성되어 있습니다. 각 서비스는 특정 비즈니스 도메인을 담당하며, 독립적으로 배포 및 확장이 가능합니다.

서비스 목록

Core Services (핵심 서비스)

서비스언어프레임워크데이터베이스포트네임스페이스
API GatewayGoGinElastiCache (Valkey)8080core-services
Product CatalogPythonFastAPIDocumentDB8080core-services
SearchGoGinOpenSearch, DocumentDB8080core-services
CartGoGinElastiCache (Valkey)8080core-services
OrderJavaSpring BootAurora PostgreSQL8080core-services
PaymentJavaSpring BootAurora PostgreSQL8080core-services
InventoryGoGinAurora PostgreSQL8080core-services

User Services (사용자 서비스)

서비스언어프레임워크데이터베이스포트네임스페이스
User AccountJavaSpring BootAurora PostgreSQL8080user-services
User ProfilePythonFastAPIDocumentDB8080user-services
WishlistPythonFastAPIDocumentDB8080user-services
ReviewPythonFastAPIDocumentDB8080user-services

Fulfillment Services (배송 서비스)

서비스언어프레임워크데이터베이스포트네임스페이스
ShippingPythonFastAPIDocumentDB8080fulfillment
WarehouseJavaSpring BootAurora PostgreSQL8080fulfillment
ReturnsJavaSpring BootAurora PostgreSQL8080fulfillment

Business Services (비즈니스 서비스)

서비스언어프레임워크데이터베이스포트네임스페이스
PricingJavaSpring BootAurora PostgreSQL8080business-services
RecommendationPythonFastAPIDocumentDB, ElastiCache8080business-services
NotificationPythonFastAPIDocumentDB8080business-services
SellerJavaSpring BootAurora PostgreSQL8080business-services

Platform Services (플랫폼 서비스)

서비스언어프레임워크데이터베이스포트네임스페이스
Event BusGoGinMSK (Kafka)8080platform
AnalyticsPythonFastAPIOpenSearch8080platform

기술 스택 분포

서비스 의존성 다이어그램

리전별 배포 구성

리전역할특징
us-east-1Primary쓰기 작업 처리, 글로벌 데이터베이스 Primary
us-west-2Secondary읽기 작업 처리, 쓰기 요청은 Primary로 포워딩

멀티 리전 데이터 복제

  • Aurora Global Database: Primary에서 Secondary로 1초 미만의 복제 지연
  • DocumentDB Global Cluster: 변경 스트림을 통한 데이터 동기화
  • ElastiCache Global Datastore: 리전 간 세션 및 캐시 복제
  • MSK: 리전별 독립 클러스터 (이벤트는 로컬 처리)

API 경로 매핑

API Gateway가 모든 요청을 적절한 백엔드 서비스로 라우팅합니다:

API 경로백엔드 서비스
/api/v1/productsproduct-catalog.core-services
/api/v1/searchsearch.core-services
/api/v1/cartcart.core-services
/api/v1/ordersorder.core-services
/api/v1/paymentspayment.core-services
/api/v1/inventoryinventory.core-services
/api/v1/authuser-account.user-services
/api/v1/profilesuser-profile.user-services
/api/v1/wishlistswishlist.user-services
/api/v1/reviewsreview.user-services
/api/v1/shipmentsshipping.fulfillment
/api/v1/warehouseswarehouse.fulfillment
/api/v1/returnsreturns.fulfillment
/api/v1/pricingpricing.business-services
/api/v1/recommendationsrecommendation.business-services
/api/v1/notificationsnotification.business-services
/api/v1/sellersseller.business-services
/api/v1/eventsevent-bus.platform
/api/v1/analyticsanalytics.platform

공통 기능

모든 서비스는 다음 공통 기능을 제공합니다:

헬스 체크 엔드포인트

  • GET /healthz - Liveness probe
  • GET /readyz - Readiness probe

관찰성 (Observability)

  • 분산 추적: OpenTelemetry를 통한 Tempo/X-Ray 연동
  • 메트릭: Prometheus 형식 메트릭 노출
  • 로깅: 구조화된 JSON 로깅

리전 인식 미들웨어

  • Secondary 리전에서 쓰기 요청 시 Primary로 자동 포워딩
  • X-Region 헤더를 통한 리전 정보 전파