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