0
我们即将放弃ES,因为我们需要流程的一致性读取模型,并且在试图弄清楚我们如何节省ES时,我们正在考虑一致的读取方面。基本上,一个命令将由AR运行,生成事件列表。这些事件首先被保存到事件存储器,然后(通过一些额外的编码)专门用于读取模型(以事务处理的方式,即,来自单个命令的所有事件的所有预测都将被包裹在事务中)。只有在此之后才会发布这些活动。所以基本上我的代码将是这样的:事件采购没有最终的一致性?
void ExecuteCommand(Command cmd) {
// validate and stuff...
var events = GenerateEvents(cmd);
PersistAllSync(events);
ApplyProjectionsSync(events);
PublishAsync(events)
}
除了明显的性能问题(一种分布式事务,bascially序列化的所有命令)...为什么没有人做呢?
这可能会在出现错误时变得不一致。例如,说'ApplyProjectionsSync'成功,但是'PublishAsync'失败。这将创建一个读取模型发生更改的情况,但事件不在流中。 –
你应该大概说出这意味着什么; _needing_一致的读取模型实际上很不寻常。当你不这样做时,你需要他们保持一致是相当普遍的。 – VoiceOfUnreason
@Lev你能否满足你为什么需要一致的看法?只有知道为什么我们可以找到采用事件采购的方式...... – Narvalex