2017-02-08 3 views
0

Ich schreibe in einen EventStore-Stream, indem ich den C# API AppendToStreamAsync() - Aufruf verwende. Ich sehe, dass, während dies ein WriteResult zurückgibt, die Version des neu angehängten Ereignisses nicht zurückgegeben wird. Ich kann mich nicht auf NextExpectedVersion verlassen, da möglicherweise mehrere Clients in diesen Stream schreiben.Wie die Version eines Ereignisses an einen Stream angehängt wird

ich in den Stream abonnieren könnte und für „mein“ Ereignis auftauchen warten, aber habe ich etwas anderes verpasst haben, ist die documentation ziemlich leicht und nicht erwähnt, auch die zurückgegebene Typ.

Was gilt als der beste Weg, diese Nummer zu bekommen?

Antwort

0

Die Version wird nicht benötigt, denn bevor Sie den Stream schreiben, kennen Sie die Version Ihres Aggregats (Stream). Wenn der Schreibvorgang erfolgreich ist, kennen Sie die Version.

Bevor Sie ein neues Ereignis in einen Stream schreiben, müssen Sie den Stream lesen, um das Aggregat zu rehydrieren. Dann kennst du die Version. Wenn ein anderer Autor in denselben Stream geschrieben hat, müssen Sie zuerst den neuen Status haben. (Wenn Sie das Aggregat immer noch im Speicher haben, können Sie von der aktuellen Version in Ihrem Aggregat abfragen)

Wenn das optimistische Sperren nicht benötigt wird, können Sie beim Schreiben des Streams die ANY-Version angeben. (Dies kann erfolgen, wenn der Stream nur ein Protokollierungsstrom ist)

Verwandte Themen