2011-12-07 3 views
0

현재 CQRS를 사용하여 구현하려는 (주로) HTML 기반 공동 작업 제품군에 대한 개념을 초안으로 작성하고 있습니다. 이 소프트웨어에는 사용자에게 보낼 수있는 메시지 (읽거나 읽지 않을 수 있음)와 마지막 사용자 로그인 이후에 작성된 경우 "새로운"으로 표시되는 기타 요소가 포함됩니다. 새로운 것은 아니지만 CQRS를 사용하여 올바르게 구현 된 방법이 확실하지 않습니다. 내가 이해하는 한, 어떤 종류의 변경도 예외없이 명령을 통해서만 가능해야합니다. 그러나 액세스되는 모든 단일 (새) 요소에 대한 명령을 만드는 것은 오버 헤드는 말할 것도없고 너무 많이 보인다. 필요한 경우 잘 모르겠지만 요소에 마지막 액세스 타임 스탬프를 구현하는 가장 좋은 방법은 무엇입니까? 기본적으로 각 사용자에 대한 첫 번째 시간뿐만 아니라 요소에 액세스 할 때마다 변경 사항이 발생한다는 점에서 위와 같은 문제가 발생합니다.CQRS의 새 플래그/읽기 플래그

CQRS는 멋진 개념 인 것처럼 보이지만 더 많은 학습 자료가 필요합니다. 책이

감사

[편집] 아무도 :) 출시 될 때까지 기다릴 수 있습니까? 이것은 매우 복잡한 이슈라고 생각하지 않았을 것입니다.

+0

내가 제공 한 답변에 대한 의견이 있으십니까? –

답변

0

당신이 쿼리 - 서비스/이벤트 핸들러가 적절한 이벤트를 발생하도록 허용하면 이벤트 소싱을 사용한다고 가정합니다 해결하다.

메시지/요소에 대해; 당신의 요소의 특정 생성 이벤트를 처리 할 때 기존에 추가하거나 요소에 대한 새로운의 상태와 적절한 정보와 모델을 읽을메시지를 저장하기 위해 추가 이벤트 처리기를 만드는 중.

사용자 로그인의 일부로 사용자가 로그인 한 것을 말하기 위해 구현 된 인증 방법에 따른 보안/쿼리 서비스에서 사용자 로그인 이벤트를 제기 할 수없는 이유가 없습니다. 이벤트 핸들러는 이것을 캡처하여 마지막 사용자 로그인 타임 스탬프를 특정 사용자 로그인 로그인 읽기 모델에 기록 할 수 있습니다.

또한 사용자가 로그인 한 이벤트 핸들러는 읽지 상태 (해당 사용자에 대한) 모든 메시지를 업데이트해야합니다. 사용자가 로그인 할 때 메시지의 상태가 변경되는 것을 보면 여전히 마지막 로그인 타임 스탬프를 저장해야합니까?

마지막으로 액세스 한 타임 스탬프의 경우, 다른 요소에 대한 쿼리가 완료되면 쿼리 서비스로이 작업을 수행 할 수 있습니다. 요소 ID/유형 정보를 사용하여 쿼리 완료 이벤트를 발생시킵니다.