如果目前实际上不需要将大命令分解成较小的命令?

时间:2017-02-22 04:11:15

标签: php domain-driven-design cqrs

我正在为一些商店实现后端,它完全写在前端,只有最终状态(数据)被发送到后端。我正在尝试将DDD与CQRS / ES一起使用。

快乐场景用例(例如,通用):

  • 鉴于User,Cart和CartItem存在。
  • 用户可以将X类型的CartItem添加到购物车

  • 用户可以指定(设置一些参数)CartItem Y

  • 用户可以添加Y类型的CartItem

  • 用户可以从他的地址中选择地址(创建它们是值得关注的 另一个BC)

  • 用户可以下订单

现在,因为这一切都发生在Frontend上,我现在唯一的交付机制是来自GraphQL的一些原始数据。我应该在Application层中使用create($ someGraphQLData)方法创建一些CreateNewOrderFromGraphQL;只是创建相对较大的CreateNewOrderCommand(因为它需要包含地址,CartItems,促销代码等)并通过命令总线传递到我的域模型,创建整个订单?

或者我应该考虑我的域模型,就像在前端完成一样,然后在我的CreateNewOrderFromGraphQL中将大的原始GraphQL数据分解为单独的命令,如CreateCartCommand,AddItemToCartCommand,CreateOrderCommand(包含cart id,adress id,也许还有一些细节)然后按顺序调用它们?

我应该考虑哪些因素?

0 个答案:

没有答案