2013-05-20 1 views
3

Je comprends que le CommitId est utilisé en interne par le magasin d'événements de Jonathan Oliver. Jusqu'à présent, j'ai toujours fourni un Guid.NewGuid() pour le CommitId.EventStore Commit Guid, à quoi sert-il vraiment?

Quand voudriez-vous tous faire quelque chose de différent?

Je ne comprends pas pourquoi il est exposé dans son référentiel de domaine commun.

Quelqu'un peut-il faire la lumière sur ce sujet?

+0

Bonne question; Je peux y répondre (pour permettre aux rédacteurs concurrents qui ont un identifiant partagé, tel qu'un identifiant de commande) d'induire un comportement d'idempotence rapide dans le processus Commit. –

+0

Merci Ruben. Pour ceux qui veulent creuser dans ce try ici: http://docs.geteventstore.com/dotnet-api/3.6.0/optimistic-concurrency-and-idempotence/ –

Répondre

3

En général, CommonDomain n'essaye pas de forcer une structure opiniâtre adaptée à toutes les tailles. L'une des manières de tirer parti de ce fait est que les rédacteurs utilisent leur ID de commande entrant unique en tant que CommitId - cela signifie que les concurrents (ou les nouveaux concurrents en attente de dépassement) seront rejetés avec une exception spécifique sans avoir besoin de entrer dans/considérer/gérer la logique de résolution de conflit. Ceci est utilisé pour remplir le principe clé des commandes Idempotent.