进入CQRS,我了解您有命令(应用层)和事件(来自域)。
在事件要更新读取模型的简单情况下,读取模型更新是否失败?如果没有“bug”,那么我看不到它们失败了,因为我正在使用EventStore,我知道有一个提交标志会重试失败。
所以我的问题是除了EventStore之外我还要做任何事情来处理失败吗?
来自一个你在一次交易中做所有事情的世界,现在事情分开完成让我担心。
答案 0 :(得分:2)
当然,在阅读模型中可能会出现已发布事件失败的情况。
你必须确保你能够发现并解决它。
好消息是您可以一次又一次地重播所有事件,这样您就不仅有机会修复错误。如果需要,您还可以通过重播每个事件来测试修复。
我使用NServiceBus作为我的发布机制,它允许我使用错误队列。使用我的其他日志记录工具和错误队列,我可以轻松确定发生了什么,因为我有错误日志和导致错误的实际消息。