Domain driven design 在DDD中,命令是否严格同步API调用?
当我在DDD上下文中阅读有关命令时,它通常被描述为一个API调用 在本例中,serviceA向serviceB发送命令Domain driven design 在DDD中,命令是否严格同步API调用?,domain-driven-design,Domain Driven Design,当我在DDD上下文中阅读有关命令时,它通常被描述为一个API调用 在本例中,serviceA向serviceB发送命令 serviceA->serviceB 在我的理解中,指挥是一种具体的行动。所以从技术上讲,这也可以是异步的。可能在消息队列中发送命令消息 serviceA->queue->serviceB 命令是严格同步的API调用,还是可以是异步的?域驱动设计环境中的命令: 在域驱动设计的上下文中,命令表示系统中发生某件事的意图,该意图在执行后导致某种预期结果。因此,可以将其视为包含命令接收
serviceA->serviceB
在我的理解中,指挥是一种具体的行动。所以从技术上讲,这也可以是异步的。可能在消息队列中发送命令消息
serviceA->queue->serviceB
命令是严格同步的API调用,还是可以是异步的?域驱动设计环境中的命令: 在域驱动设计的上下文中,命令表示系统中发生某件事的意图,该意图在执行后导致某种预期结果。因此,可以将其视为包含命令接收者执行命令所需的所有信息的对象 因此,当谈到域驱动设计中的命令时,在触发和传输命令的方式,或所需信息的表示方式方面没有技术定义或限制 命令应该首先从业务角度进行描述,以确定系统上下文中的什么或谁将触发它以及何时触发它。以及命令执行后的预期状态 命令可以通过以下方式触发/传输:
- 当用户单击网站上的按钮时执行同步REST请求
- 将异步消息(例如,从一个微服务)发送到命令接收器(例如,另一个微服务)的消息队列
- 执行gRPC呼叫(例如从一个微服务到另一个微服务)
- 单击桌面应用程序UI中的按钮
- 执行计划的后台任务
- 在网上商店中签出当前购物篮以启动订单
- 向上投票并回答stackoverflow,增加答案的投票数