2013-04-08 5 views
1

나는 DDD와 CQRS로 놀려고하고있다.Command/Handles에 전체 집계 또는 해당 ID 만 저장해야합니까?

그리고 내가 가진이 두 가지 솔루션 :

  • 내 명령/이벤트에 AggregateId를 추가합니다. 웹 서비스 매개 변수로 내 명령을 사용할 수있는 멋진 Beauce이며 "내 명령과이 명령을 수행 할 수 있습니다."라고 말하기 위해 내 명령의 일부 인스턴스를 양식에 반환 할 수 있습니다.

  • add 내 명령/이벤트에 전체 집계. 이벤트가 계속 발생하면 100 번 집계를로드하지 않기 때문에 좋습니다. 내 참조를 전달할 것입니다 (예 : 명령의 유효성 검사기에서로드하지 않고 내 명령 처리기). 하지만 각 명령에 대해 매개 변수 클래스를 만들려면 추가해야만합니다.

는 지금 내가 명령의 ID와 이벤트의 전체 모델을 (내가로드 (aggregateId)를 캐시에 대한 작업의 내 단위를 신뢰 그래서 난 한 명령에 대해 동일한 요청 (100)를 실행하지 않습니다이).

오른쪽/더 좋은 방법이 있습니까?

답변

8

예 현재 접근 방식이 정확합니다. 명령에서 ID 값을 사용하여 집계를 참조하십시오. 명령은 직렬화되어 프로세스 경계를 ​​넘어 전송됩니다. 또한 명령은 일반적으로 전체 집계 인스턴스를 만들 충분한 정보가 없을 수도있는 클라이언트에 의해 구성됩니다. 또한 ID를 사용해야하는 이유이기도합니다. 그리고 네, 필요한 경우, 작업 단 위의 지속 기간 동안 집계 캐시를 처리해야합니다.

+0

나는 이런 종류의 대답을 좋아한다. 나는 그것에 대해 다른 생각이 있는지보기 위해 약간의 openned 질문을하도록하겠다. –

+0

+1, 아무 것도 덧붙여서는 안된다 –

+0

eulerfx의 대답은 좋고 간단하다. –