簡體   English   中英

使用EventSourcing確認MessageBox嗎?

[英]Confirm MessageBox with EventSourcing?

在CQRS中,事件源是我們唯一的真實信息來源,永遠不要相信您所讀取的數據模型,那么如果我需要顯示一個確認消息框,例如顯示“用戶X的最近10個動作”,那么我應該使用哪種方法?

1-發送命令查詢聚合中的最后10個操作,然后聚合發布我在UI中處理的10個事件,其中包含用戶的操作?

2-還是簡單地查詢我的Read模型?

在我的情況下,CQRS怎么說?

多謝你們。

約翰·史密斯

永遠不要相信您的讀取模型,這並不意味着您需要從寫入數據庫讀取數據。 這意味着您在讀取模型中的數據可能變得無效。 在這種情況下,您應該在事件處理程序中進行一些修復,因為您信任僅寫入數據庫會從事件(寫入數據庫)中重建讀取數據庫。

簡單規則(至少我遵循這些規則):

  1. 始終從讀取的數據庫中讀取數據。
  2. 僅當需要在將事件應用到AR之前需要驗證某些內容並且需要重播事件時才可以訪問聚合根(在您的域內,訪問AR的唯一方法應該是GetById)。

在您的示例中,一切都很簡單:處理用戶AR消息並以用戶需要的格式存儲事件(您應該從事件映射數據,而不僅僅是存儲事件)(在nosql數據庫中為嵌套集合),在sql中為單獨表數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM