我擁有的站點有一個簡單的CQRS體系結構,運行良好。一個事件由不同的訂閱者發佈並提取,其中一個使得報告數據庫保持同步[在RavenDb中]。重新生成查詢數據庫
舉例來說,我的報告數據庫已損壞/丟失。通過事件採購,我可以重播事件並重建報告數據庫,但是[目前]我沒有使用事件採購;我有一個簡單的nHibernate持久性關係存儲。解決方案是創建一個「再生」類型的腳本,它基本上會發送基於關係存儲的所有事件(例如,PersonCreatedEvent後跟30xPersonLikedBlogPostEvent等)?它本質上與事件源做同樣的事情,但事件是從關係模型推斷出來的。
作爲可維護性和災難恢復的難易顯然很重要。
謝謝,我不是太大驚小怪從/真對象歷史等表示再生的優點,但有一個RavenDb報告數據庫是性能SLA的網站的重要。然而,我正在轉向事件採購。問候 – sjhuk