在我的系统中,当一个新事务添加到系统时,该请求具有以下信息
此外,如果交易不按分期付款,分析数据必须更新(明确当月等)。
因此,当用户提交的新交易必须完成以下时
2)将新交易添加到数据库
如果有分期付款
3)将分期付款添加到数据库
否则
因此解决方法是在我的控制器AddnewTransactionController
将请求解压缩到两个单独的命令AddNewClientCommand
AddNewTransactionCommand
并调用相关的命令处理程序AddNewClientCommandHadler
AddNewTransactionCommandHandler
AddNewTransactionCommandHandler
也会注入像UpdateanalysisData
这样的域名服务。
从架构的角度来看,上述内容是否是一个很好的解决方案?
答案 0 :(得分:1)
我通常希望将该方法作为一个过程实现,而不是作为一组命令实现。
客户承诺下订单,也就是说我们解决方案边界之外的某个远程实体为我们提供了获得一些商业价值的机会。所以当务之急是抓住这个机会。 因此,您将这个机会写入耐用商店,并发布域事件。
为了响应域事件,现在可以触发一堆其他命令(从域事件中提取所需的数据,或者在商店中提供商机的表示)。