我正在为一些商店实现后端,它完全写在前端,只有最终状态(数据)被发送到后端。我正在尝试将DDD与CQRS / ES一起使用。
快乐场景用例(例如,通用):
用户可以将X类型的CartItem添加到购物车
用户可以指定(设置一些参数)CartItem Y
用户可以添加Y类型的CartItem
用户可以从他的地址中选择地址(创建它们是值得关注的 另一个BC)
用户可以下订单
现在,因为这一切都发生在Frontend上,我现在唯一的交付机制是来自GraphQL的一些原始数据。我应该在Application层中使用create($ someGraphQLData)方法创建一些CreateNewOrderFromGraphQL;只是创建相对较大的CreateNewOrderCommand(因为它需要包含地址,CartItems,促销代码等)并通过命令总线传递到我的域模型,创建整个订单?
或者我应该考虑我的域模型,就像在前端完成一样,然后在我的CreateNewOrderFromGraphQL中将大的原始GraphQL数据分解为单独的命令,如CreateCartCommand,AddItemToCartCommand,CreateOrderCommand(包含cart id,adress id,也许还有一些细节)然后按顺序调用它们?
我应该考虑哪些因素?