2013-05-20 6 views
3

Я понимаю, что CommitId используется внутри магазина событий Jonathan Oliver. До сих пор я всегда предоставлял Guid.NewGuid() для CommitId.EventStore Commit Guid, для чего он действительно используется?

Когда бы вы все хотели сделать что-нибудь другое?

Я не понимаю, почему он выставлен в его общем хранилище домена.

Может ли кто-нибудь пролить свет на это?

+0

Хороший вопрос; Я могу ответить на него (чтобы позволить конкурирующим авторам, у которых есть общий идентификатор, такой как идентификатор команды), чтобы более дешево вызывать неудачное поведение идемпотентности в процессе фиксации. –

+0

Спасибо Рубен. Для тех, кто хочет копаться в этом, попробуйте здесь: http://docs.geteventstore.com/dotnet-api/3.6.0/optimistic-concurrency-and-idempotence/ –

ответ

3

В общем, CommonDomain не пытается навязать единую структуру с уместными размерами.

Один из способов использования этого метода заключается в том, что авторы используют свой уникальный входящий идентификатор команды как CommitId - это означает, что конкурирующие (или повторные попытки конкурировать с прогонами, которые еще не тайм-аут) будут отвергнуты с конкретным исключением, не требуя ввести/рассмотреть/управлять логикой разрешения конфликтов. Это используется для выполнения ключевого принципа Idempotent Commands.