2013-02-20 3 views
1

프로젝트에서 DDD \ CQRS \ ES를 사용하고 싶습니다. 방금 사용하기 시작 했으므로 많은 경험이 없습니다. 나는 기존의 핵심 도메인, 지원 도메인 및 CRUD 도메인을 알고 있습니다. 내 핵심 도메인에 CRUD 데이터에 대한 참조가 있습니다. 예를 들어 주문에는 많은 비즈니스 규칙이 있지만 전달 회사, 수신 지점 등에 대한 기본 정보가 포함되어 있습니다.DDD ES CQRS의 CRUD 부분

이 정보는 관리자가 관리합니다. 내 의견으로는 난처한 접근 방식을 사용해야하지만 이벤트를 롤백해야 할 때 어떻게됩니까?

시스템은 이벤트 원본에서 복원 된 데이터와 응용 프로그램의 중요한 부분에서 실제 데이터를 혼합하여 저장합니다. 나는 일관성없는 데이터로 끝날 것이다. 예를 들어, 주문이 기존 회사가 아니라면 유지 관리 될 수 있습니다 (해당 회사는 패키지를 배달했지만 롤백 주문이 여전히 활성화 된 상태에서 관리자가 삭제했습니다). 모든 프로젝트에서 모든 프로젝트에서 CRUD 데이터의 일부로이 문제를 어떻게 처리합니까? ? 회사 이벤트를 저장해야합니까?

또한, 나는 임 내 ReadStore을 재건 할 때, 그래서 저장소

PS에서 회사 이름을 얻을 수없는 데이터베이스에 기업이 없을 수도 있기 때문에 이벤트를 통해 회사 이름과 ID를 전송해야 새로운 질서를 추가 해요 때 . simples CRUD 작업으로 처리 할 CRUD 프레임 워크를 알고 있습니까?

PS.2 ES \ CQRS 방식으로 앱의 CRUD 부분을 포함하는 opensource 프로젝트를 알고 계십니까?


확인. 어쩌면 나는 너무 복잡하다고 설명했다. 난 그냥 알고 싶어

  • 어떻게 응용 프로그램의 간단한 부분을 구현하기 위해 (가난한 비즈니스 논리 - 주로 CRUD 작업) 나는 이벤트 저장소에 내 핵심 도메인을 저장하고 난 되돌릴 수 싶을 때 이전 상태 내 핵심 도메인

  • 이벤트 저장소에 크러스트 작업을 저장해야합니까?

  • 롤백 이벤트 저장 후 데이터 일관성을 유지하는 방법은 무엇입니까?

  • Java 응용 프로그램에는 어떤 CRUD 프레임 워크를 권장합니까?

답변

-1

내가하지 무엇을 정확하게 물어하려고하지만 DDD 및 CRUD 작업에 관한 경우 내가 내 자신을 시도하지 않은 있지만, Cocktail framework 당신을 도울 수 있습니다.

1

DDD를 다루는 경우와 특히 ES를 다룰 때 공통적 인 문제라고 생각합니다. 이것은 간단하게 들릴지도 모르지만 당신이 찾아야 할 것은 당신의 도메인에서 제한된 컨텍스트이다. 이 바운드 컨텍스트가 SOA의 서비스에 잘 매핑되어 있음을 알 수 있습니다. 이제 SOA에 이르면 모든 서비스 (웹/Windows 서비스와 같은 SOA의 S 서비스)가 동일하게 구현되어야하는 것은 아닙니다.

제 경험상 CRUD 작업과 거의 비즈니스 로직을 다루지 않는 서비스를 관리자/특수 사용자가 사용하는 앱에서 주로 사용하게 될 것입니다. 이 서비스는 가능한 최소한의 노력으로 CQRS 및 ES를 사용하지 않고 구현할 수 있고 복잡하지 않아도됩니다. 무엇인가가 발생했을 때 관련 메시지를 게시하는지 확인하십시오.

나는 강력하게를 권장합니다.

또한 우디 다한는 SOA에 대한 몇 가지 아주 아주 좋은 비디오가 어떤 SOA는 의미 Avoid a failed SOA

Udi on SOA 나는이 실제로 귀하의 질문의 모든 세부 사항을 응답하지 실현,하지만 난 그것이 당신을 가리 킵니다 희망 바른 길.

0

중요한 데이터가 손실되지 않도록 CRUD 부분을 추가로 처리하거나 (필요한 경우 업데이트 허용 가능) 이벤트에 충분한 데이터를 복사하지 않는 이유는 무엇입니까?