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