이커머스 프로젝트 - 헥사고날 아키텍처를 적용한 마이크로서비스 상세 설계

김동균·2022년 12월 11일
0

이벤트 스토밍을 통한 마이크로서비스 도출 과정을 거쳐 식별된 마이크로서비스를 상세 설계한다.

마이크로서비스 상세 설계를 위한 입력물

이벤트 스토밍의 결과를 기반으로 마이크로서비스를 상세 설계하기 위해 API, 도메인 이벤트, 데이터, 리스크, 서비스 연계, 외부 시스템으로 구성된 마이크로서비스별 입력물을 도출한다.

회원 서비스

회원 서비스 입력물

상품 서비스

상품 서비스 입력물

배송 서비스

배송 서비스 입력물

주문 서비스

주문 서비스 입력물

헥사고날 아키텍처를 적용한 설계

도출된 마이크로서비스별 입력물을 기반으로 헥사고날 아키텍처를 적용하여 설계한다.
커맨드는 헥사고날의 인바운드 어댑터의 하나인 REST API, 애그리거트는 헥사고날의 내부 영역인 도메인 모델, 도메인 이벤트는 헥사고날 외부 영역의 아웃바운드 메시지 처리 어댑터의 처리 대상, 외부 시스템은 아웃바운드 어댑터가 호출해야 할 외부 연계 시스템으로 각각 매핑된다.
헥사고날 아키텍처를 적용한 설계

프로젝트 구조

이커머스 프로젝트의 최종 구조는 다음과 같다.

gateway-server

클라이언트가 여러 마이크로서비스를 각각 호출하지 않도록 복잡성을 통제할 단일 진입점이다.
요청을 라우팅하고, 인증/인가, 장애 격리 등의 역할을 한다.

config-server

데이터베이스 연결 정보, 파일 스토리지 연결 정보 등을 저장하는 역할을 한다.
이를 통해 환경 설정 정보와 코드를 분리하여 배포 환경의 변경과 애플리케이션을 격리하고, 런타임 중에 환경 정보를 변경할 수 있게 된다.

discovery-server

마이크로서비스들의 명칭과 IP 정보를 매핑해서 보관하는 저장소 역할을 한다.

User-service

이벤트 스토밍으로 식별된 회원 마이크로서비스이다.

Product-service

이벤트 스토밍으로 식별된 상품 마이크로서비스이다.

Delivery-service

이벤트 스토밍으로 식별된 배송 마이크로서비스이다.

Order-service

이벤트 스토밍으로 식별된 주문 마이크로서비스이다.

profile
백엔드 개발자

0개의 댓글