2010-08-03 2 views
0

2 개의 집계 경계가 서로 모순되는 복잡한 시나리오가 있습니다.DDD : Aggregate boundaries에 대한 질문

본인에게는 요청 및 임무가 2 개 있습니다. 사용자는 요청을 작성한 후 나중에 임무를 작성하고 기존 요청을 임무에 지정할 수 있습니다.

요청 및 임무를 독립적으로 생성 할 수 있습니다. 즉, 요청을 작성할 때 임무를 가질 필요가 없으며 그 반대도 마찬가지입니다.

그래서 여기에 2 개의 다른 집계가 있다고 가정합니다. 요청 집계 및 임무 집계, 각 집은 자체 집계의 루트입니다.

그러나 우리는이 가정을 위반하는 불변성을 가지고 있습니다. 임무를 연기하거나 취소하여 임무를 할당 할 수있는 모든 요청의 상태를 적절히 업데이트 할 수 있습니다.

요청 및 임무가 두 개의 다른 집계에있는 경우 어떻게이 제약 조건을 적용 할 수 있습니까? 만약 그것들을 같은 Aggregate에 넣으면 각 Entity가 독립적으로 생성 될 수 있기 때문에 누가 Aggregate Root인지 알 수 없습니다.

어떤 조언이 필요합니까?

Mosh

답변

1

당신은 이미 올바른 길을 걷고 있습니다. 누락 된 부분은 다음과 같습니다. 집계 은 다른 집계가 있습니다.

Mission에 포함 된 RequestsStatus 개의 변경 사항을 적용해도 상관 없습니다.

1

내 제안은 이벤트 패턴을 사용하는 것입니다. Agreegate의 상태가 변경되면 이벤트를 게시합니다. 이것은 다른 Aggregates 상태를 변경할 수있는 핸들러에서 소비 될 수 있습니다. 그것이 의미가 있기를 바랍니다.