2012-02-03 58 views
1

我目前正在使用J奧利弗的EventStore,據我瞭解,它使用Guids作爲Stream ID,這就是用來構建我的聚合根的。CQRS/EventStore - 將GUIDS傳遞給UI?

從CQRS的角度和DDD的角度來看,我應該考慮域而不是GUID。所以,如果我做了一個GET(Mvc客戶端),我是否有權說我的URL應該有我的域對象(聚合根)的身份,並從那裏獲得讀取存儲的GUID用於從事件存儲中構建我的聚合根?

或者我應該將GUID傳遞給我的表單並將它們作爲隱藏的表單變量傳回?至少這樣我知道聚合根ID,不必查詢讀取存儲?

我想第一種方法是正確的方式(不使用表單中的GUID),因爲那樣我的所有Gets和POSTS都處理域對象的身份,而不是客戶端不知道的GUID。

我想這也允許我構建爲基於REST的API,它側重於資源及其身份,而不是系統生成的GUIDS。如果我錯了,請糾正我。

JD

回答

1

在我看來,你在這裏正確的軌道上。用戶界面應完全依賴閱讀模型,而不是真正關心聚合。然後,當你需要發送一個命令時,你可以使用讀取模型來獲取你感興趣的聚合的id。讀取模型應該是非常快的讀取(這是使用不同模型讀取和寫入的全部原因),如果需要,非常容易緩存。這也會給你更好的網址。

+0

謝謝馬蒂亞斯,真的很感謝你的回覆。 – 2012-02-03 13:59:16

+0

沒問題,很高興我能幫上忙。 – 2012-02-03 14:03:05

相關問題