반응형
BOUNDED CONTEXT 간 직접 통합
- 서비스를 구축하다 보면 두 BOUNDED CONTEXT 간에 통합이 필요할 때가 있다.
- 두 BOUNDED CONTEXT를 직접적으로 통합하는 방식으로 주로 두 BOUNDED CONTEXT 간에 REST API를 호출하는 방식(직접 통합)이 있다.
- 두 BOUNDED CONTEXT을 통합하는 도메인 서비스를 사용한다.
// 상품 추천 기능을 표현하는 카탈로그 도메인 서비스
public interface ProductRecommendationService {
public List<Product> getRecommendationsOf(ProductId id);
}
- 도메인 서비스를 구현한 클래스는 infraStructure 영역에 위치한다.
- 만약 외부 시스템에서 받아온 데이터가 내부에서 구축한 도메인 모델과 맞지 않는다면 해당 도메인 모델이 맞는 도메인 모델로 변환하는 별도 변환기를 둔다.
BOUNDED CONTEXT 간 간접 통합
- 대표적인 간접 통합 방식은 메시지 큐를 사용하는 것이다.
- 기준으로 하는 도메인 모델의 데이터를 메시지 큐에 저장(출판)을 하고 큐에 저장된 메시지를 받아와(구독) 두 BOUNDED CONTEXT를 통합한다.
- 기준으로 하는 도메인은 서비스 공급자 역할, 구독하는 도메인은 공급받은 서비스를 사용하는 고객 역할을 한다.
- 하지만 각각 BOUNDED CONTEXT을 구현하는 조직은 API 변경 작업이 필요할 때 마다 서로 공유하고 일정을 협의해서 개발해야 한다.
반응형
'DDD' 카테고리의 다른 글
@SecondaryTable을 이용한 밸류 매핑 설정 (0) | 2021.09.14 |
---|---|
엔티티(Entity)와 밸류(Value)란? (0) | 2021.09.14 |
BOUNDED CONTEXT 간 관계 (0) | 2021.09.14 |
좋은 의존성을 구성하라! (0) | 2021.09.14 |
애그리거트(Aggregate)란? (0) | 2021.09.13 |