2013-05-20 19 views
3

我明白CommitId由Jonathan Oliver的活動商店內部使用。 到目前爲止,我總是爲CommitId提供Guid.NewGuid()EventStore Commit Guid,它真的用於什麼?

你什麼時候想要做任何不同的事情?

我不明白爲什麼它暴露在他的公共領域知識庫。

任何人都可以對此有所瞭解嗎?

+0

好問題;我可以回答它(以允許具有共享標識符的競爭作者(例如命令ID))更廉價地引起提交過程中的失敗快速冪等行爲。 –

+0

謝謝魯本。對於那些想深入研究的人來說:http://docs.geteventstore.com/dotnet-api/3.6.0/optimistic-concurrency-and-idempotence/ –

回答

3

一般來說,CommonDomain不會試圖強制一個適合所有人的自以爲是的結構。

利用它的一種方式是讓作者使用其唯一的傳入命令ID作爲CommitId - 這意味着競爭(或重試與尚未超時的運行競爭)將被拒絕,並且不需要特定的異常進入/考慮/管理衝突解決邏輯。這是用來實現Idempotent命令的關鍵原則。