또 다른 예를들 수 있습니다. 전자 상거래 시스템이 있다고 가정 해보십시오. 거기에 제품이 있지만 제품은 최소한 두 가지 다른 도메인의 일부가됩니다.
- 제품 설명 및 모든 속성을 유지하는 제품 카탈로그
- 제품 재고 레벨이있는 재고
두 도메인 모두에 대해 하나의 경계 컨텍스트가있는 경우, 상호 참조를 시작하기 때문에 솔루션이 신속하게 큰 진흙 덩어리가 될 수 있습니다. 결국에는 더 이상 두 개의 도메인이 없습니다. 제품 재고는 제품 카탈로그 참조와 함께 손상되며 그 반대도 마찬가지입니다. 그 결과 다른 도메인을 건드리지 않고 한 도메인을 변경할 수는 없습니다.이 도메인이 필요하지 않다는 것을 완전히 알고 있습니다. 모델은 서로 의존하고 밀접하게 결합되며 구현에 의존하는 나쁜 방식으로 의존합니다.
그러나 두 가지 경계 컨텍스트가있는 경우 통신 채널을 명확하게 유지하자마자 한 도메인에서 수행 한 모든 변경 사항이 다른 도메인에 영향을 미치지 않습니다. 데이터 복제가 필요하지만 손실 된 컴포넌트 기반 애플리케이션에 대해 지불하는 비용이 가장 적습니다. 도메인 이벤트를 사용하여 도메인이 서로 대화 할 수 있습니다. SOA 기반 애플리케이션을 처음에 계획하지 않더라도 도메인 이벤트에 대한 전송을 변경하고 아이디어를 그대로 유지하므로 상대적으로 적은 노력으로 필요할 때 해당 레벨까지 확장 할 수 있습니다.
업데이트 : Eric Evans의 SkillsMatter에 대한 유용한 기술 캐스트가 있습니다. 그는 몇몇 맹인이 그들의 관점에서 코끼리를 묘사 할 때, 옛 이야기와 유사하다. 각 사람은 코끼리의 일부만 만질 수 있기 때문에 "나무", "벽", "뱀", "로프"라고 묘사합니다. 그리고 그 사람들은 각자의 맥락 안에 있습니다. 한정된 맥락은 어디에나있는 언어가 존재하는 곳입니다. 문맥 밖에서 이러한 용어는 완전히 다른 의미를 가질 수 있지만 문맥 내에서 언어는 여러 도메인에서 동일합니다. 그레그 영은 가장 중요한 기본 개념이 여기에 설명되어 있기 때문에 11 장부터 블루 북을 읽을 것을 강력히 제안합니다. 이 책의 시작 부분에서 전술 패턴에 중점을 둔이 "DDD-light"접근 방식은 매우 일반적입니다.