目前,我正在構建一個PHP應用程序,其中包含CQRS,ES和DDD的想法。讓我們考慮這個包含5個問題的調查應用程序。參與者可以通過回答5個問題來回答調查問卷。CQRS + PHP:發生事件時的邏輯放置位置
可以從正確的順序從閱讀方查詢5個問題。但是,一個問題可以有條件。例如,當B回答問題1時,不要顯示問題2.答案1B,下一個問題將是:3,4和5.
客戶端可以觸發命令AnswerQuestion ,處理程序將處理該命令,並觸發事件QuestionAnswered。基於該事件,事件處理程序將更新讀取端,並且客戶端可以查詢要提出的下一個問題。當問題沒有更多問題時,參與者將完成參與(並且可以參加新的參與)。
調查中的邏輯將根據給定的答案決定要問哪些問題,哪些不是,這是純粹的域邏輯。 我正在努力放置/應用這個邏輯。還有何時決定參與何時完成。我認爲最可能的答案是:讓調查AR根據參與的給定答案確定下一個問題。或者,分享服務中的邏輯,讓讀方查詢問題並給出答案,並將共享邏輯應用於此。
你能幫助我嗎?提前致謝!
如果你可以請讓我知道,如果我需要擴大我的答案的任何領域,或者如果答案不是你正在尋找考慮創造一個賞金,以吸引注意力。 – g18c 2014-10-06 05:28:28