我正在将不同的有界上下文集成到Windows Service Bus中,并有一些问题:
1)如何在其他有界上下文中检测重复项?存储最后处理的消息序列?我想要重新启动事件的能力,以允许重新同步新的有限制的上下文,HandleEvent(OrderPlaced orderPlaced, bool isReplay)将在未来的生产中用于初始同步。
2)对于跨上下文消息总线,我们会使用每个有界上下文的主题(并且有名称空间来对有界上下文进行分组)吗?还是每个名称空间都有一个有界的上下文?
3)消息总线文档表示消息可能会出现故障,应该使用什么算法来进行有序的重组?如果收到了第6条和第8条消息,但没有收到7条,会发生什么情况?我们会等一个指定的时间,然后继续吗?如何允许自我修复?
4)我认为上述情况在几乎所有DDD项目中都很常见,是否有处理消息传递(包括命令/响应协议)的库来请求来自外部有限上下文的以前事件的同步?
发布于 2014-07-30 07:05:30
这并不能回答你的大部分问题,但给了你一个选择。
当我开始拉事件,而不是把它们推给我时,很多这些问题就消失了。如果我在拉,我只保留我处理过的事件编号的检查点。当我需要重建时,我删除读取模型,检查点和新读取模型将自动创建。因为我用的是一个作者,所以复制不成问题。订购也不是问题。
不过,我们仍然有一些事件被推出去--但这些事件只用于反应行为。例如,下订单时,打印一张票证。
这对你来说是否有意义,取决于你需要对事物做出多快的反应,以及你需要数据有多新鲜(1秒对30秒等等)。
https://stackoverflow.com/questions/25015426
复制相似问题