2012-04-18 2 views
5

저는 CQRS/이벤트 저장소 시스템을 연구 중입니다. 현재 내가 사용하는 패턴은 명령이 동기 적이라는 것입니다. 즉, 사용자 인터페이스는 명령이 완료되고 성공/실패가 사용자에게 표시 될 때까지 완료된 작업을 표시하지 않습니다. 명령의 실행 중에 생성 된 모든 이벤트 (예 : 집계 루트 Y에서 발생하는 동작 X)는 영구 저장 장치에 저장됩니다.CQRS/ES 시스템에 명령을 저장하면 어떤 이점이 있습니까?

내가 읽은 CQRS에 대한 모든 설명은 명령 저장을 구현합니다. 이것이 내 상황에 필요한지 궁금합니다.

다른 하나의 메모 - 장기간 실행되는 명령 유형 작업이 많아서 작업을 생성하는 명령으로 작업이 분리되어 차례대로 이벤트가 더 많은 명령을 실행합니다. 명령은 집계 루트의 상태에 따라 멱등 원입니다. 나는 이것이 이것이 어떻게 영향을 미칠지 모르지만, 지적할만한 가치가있다.

덕분에, 에릭

+0

명령을 저장하는 몇 가지 구현 예를 제공 할 수 있습니까? 필자가 본 대부분의 예제는 명령 결과로 생성 된 이벤트 만 저장합니다. –

+0

프레임 워크가 없지만 이벤트 소싱이없는 CQRS는 최소한 내 이해를 바탕으로 재생을위한 레코드 명령을 기록합니다. –

+0

나는 보안에 대해 약간 걱정하고있다. 일반 텍스트 암호가 포함 된 ChangeUserPassword와 같은 명령으로 무엇을 할 계획입니까? – Kimble

답변

6
  1. 회귀 테스트 은, 그것을 재 - 실행 및 생산에 하나 제작 이벤트 스트림을 비교합니다. 그들이 다르다면 - 당신은 당신의 논리에 회귀가 있습니다.

  2. 메시지 흐름 시각화 및 분석.

4

내가 이벤트 소싱없이 본 적이 Cqrs의 예는 오히려 데이터의 상태에 대해 온 방법을 보여 이벤트보다 시스템의 상태를 저장하는 일반적인 관계형 데이터베이스입니다. "Command sourcing"은 나에게 새로운 개념이며 명령 처리기가 시간이 지남에 따라 변경 될 수 있기 때문에 제대로 된 것 같지 않습니다. 명령 처리기 논리를 변경하면 재생할 때 명령이 실패하게됩니다. 이벤트 재생은 개체 속성을 직접 설정하므로이 문제가 발생하지 않습니다. 프로덕션 환경에서 명령 로그를 잡을 수 반복 모든 DEV 후

+0

이것은 의미가 있습니다 - 감사합니다! –