2014-07-25 3 views
1

트랜잭션 또는 최종 일관성이 II Vaughn Vernon's Effective Aggregate Design의 일부에 사용할지 여부를 결정하는 방법을 논의, 그는 선택 일관성 유형 "어떤 사람인가 묻기"지침은 무엇을 의미합니까? 사용 사례 (또는 기사)는 실행 사용자의 작업인지 질문을 검사 할 때

을 말한다 유스 케이스를 사용하여 데이터 일관성을 유지하십시오. 그렇다면 은 트랜잭션 일관성을 유지하려고하지만 다른 집계 규칙을 준수해야합니다. 다른 사용자의 작업이거나 시스템의 작업 인 경우 결과적으로 일관성있게 유지하십시오.

나는 따라 가지 않습니다. 누구든지이 경험 법칙을 적용하는 좋은 예가 있습니까? 여기

답변

2

내가 그것을 얻을 방법은 다음과 같습니다

  • MovePiece()ChessBoard에 집계 => 사용자의 책임. 작업은 모두 ChessBoard 경계 내에 포함 된 하나의 트랜잭션에서 수행되어야합니다.

  • DecideGameOver()ChessGame 집합 => 시스템의 책임입니다. 게임이 끝난 경우가 결정하는

    일부 핸들러는 ChessBoardPieceMoved 이벤트와 ChessGame 집계에 대표로 등록합니다. 이사회와 게임 집계가 업데이트 될 때까지 지연되는 것을 용인 할 수 있습니다. 최종 결과는 입니다.

수십 개의 시스템을 관찰하여 일반화 된 지표가 더 어렵고 빠른 규칙은 아닙니다.

+1

감사합니다. 나는 당신의 요지를 얻는다.하지만 나는 체스가 합리적으로 하나의 거대한 집계로 모델링 될 수 있기 때문에 어색한 예라고 생각한다. (모든 것은 차례를 기반으로하므로 2 명의 사용자와 멀티 - 테넌시는 동기가 없다.) 좀 더 유용한 예가 웹 사이트 방문자가 등록 양식을 작성하고 계정이 활성화되는 것과 같을 것이라고 생각합니다. –

+1

좋은 지적. 체스를 선택하여 간단하게 만들었지 만 처음에 생각한 프로젝트는 멀티 플레이어 게임입니다. 어쨌든, 나는 다른 대답을보고 싶습니다. 내가 말했듯이, 그것은 규칙에 대한 나의 해석 일뿐입니다. – guillaume31