애완 동물 프로젝트에 CQRS를 적용하려고합니다. 예를 들어 Food
및 Course
입니다.컴플렉스 유형 명령 내
코스는 다양한 음식으로 구성되어 있습니다.
AddFoodToCourse
ChangeFoodQuantityInCourse
등 ... 나는 CourseCommandHandler을 작성하는 경우
나는 과정을 수정하기 위해 의존성으로 ICourseRepository을 얻을 것이다하지만 간단한 명령을 것이다 유지 :
내 설계에서나는 그 명령이 FoodId 대신에 CourseId 및 FoodId 속성이 있어야합니다.
처리기에서 ID 만 관리하고 저장소에서 모든 관련 데이터를 가져 오지 않겠습니까?
내가 이해 한 경우 제대로 내 응용 프로그램이 워크 플로를 따라야합니다
사용 ReadModel
=>domain object
작동 및 repositories
=>Domain objects
인상 이벤트와 객체를 저장 명령을 만들고>CommandHandler
명령을 소비 = 버스에 보내 버스에 게시 =>EventHandler
이벤트를 소비하고 난 단지 ID를 관리하고 저장소에서 모든 관련 데이터를 얻거나하지 가정 핸들러에서 ReadModel
객체
내가 필요한 각 저장소를 주입해야한다고 말하면 대신 엔티티로드/저장을 허용하는 고유 저장소를 만들어야합니다. –
일반적인 CQRS 저장소는 GUID로 입력 된 다양한 유형의 이벤트를 저장할 수 있지만 저장소 구현은 사용자에게 달려 있습니다. – eulerfx