이벤트 스토밍을 통한 마이크로서비스 도출 과정을 거쳐 식별된 마이크로서비스를 상세 설계한다.
이벤트 스토밍의 결과를 기반으로 마이크로서비스를 상세 설계하기 위해 API, 도메인 이벤트, 데이터, 리스크, 서비스 연계, 외부 시스템으로 구성된 마이크로서비스별 입력물을 도출한다.
도출된 마이크로서비스별 입력물을 기반으로 헥사고날 아키텍처를 적용하여 설계한다.
커맨드는 헥사고날의 인바운드 어댑터의 하나인 REST API, 애그리거트는 헥사고날의 내부 영역인 도메인 모델, 도메인 이벤트는 헥사고날 외부 영역의 아웃바운드 메시지 처리 어댑터의 처리 대상, 외부 시스템은 아웃바운드 어댑터가 호출해야 할 외부 연계 시스템으로 각각 매핑된다.
이커머스 프로젝트의 최종 구조는 다음과 같다.
클라이언트가 여러 마이크로서비스를 각각 호출하지 않도록 복잡성을 통제할 단일 진입점이다.
요청을 라우팅하고, 인증/인가, 장애 격리 등의 역할을 한다.
데이터베이스 연결 정보, 파일 스토리지 연결 정보 등을 저장하는 역할을 한다.
이를 통해 환경 설정 정보와 코드를 분리하여 배포 환경의 변경과 애플리케이션을 격리하고, 런타임 중에 환경 정보를 변경할 수 있게 된다.
마이크로서비스들의 명칭과 IP 정보를 매핑해서 보관하는 저장소 역할을 한다.
이벤트 스토밍으로 식별된 회원 마이크로서비스이다.
이벤트 스토밍으로 식별된 상품 마이크로서비스이다.
이벤트 스토밍으로 식별된 배송 마이크로서비스이다.
이벤트 스토밍으로 식별된 주문 마이크로서비스이다.