示例:业务规则规定客户在下订单后应收到确认消息(电子邮件或类似信息)。
假设 aNewOrderRegisteredEvent
从域中分派,并由发送确认消息的事件侦听器接收。完成后,其他一些事件处理程序会抛出异常或出现其他问题,并且工作单元会回滚。我们现在已经向用户发送了一条回滚的确认消息。
解决此类问题的“cqrs”方式是什么,您想在完成一个工作单元后做某事?另一个复杂的因素是重播事件。每当我重播记录的事件以构建新的视图/投影时,我不希望重新发送旧的确认消息。
到目前为止我最好的理论:我刚刚开始研究 cqrs 的迷人世界,想知道这是否可以作为传奇来实现?如果 saga 就像一个状态机,每个转换只能发生一次,那么我想这会解决这个问题吗?我只是很难想象这将如何与命令总线和域事件结合在一起。