目前,我正在构建一个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