Application written in .net
tries to read event stream. For this goal, EventStoreCleint wrapper was written, under the hood it uses EventStore.Client.Grpc.Streams 23.1.0
. The logic is the following:
TenantCreated
eventTenantCreated
event.The problem is in fact, when the application reads the event stream by _client.ReadStreamAsync
if there is no stream, the exception will be thrown. Exceptions are expensive from the performance point of view.
How to read stream even is stream version is 0 without exceptions?
If you inspect the StreamState
in the result, it will be StreamNotFound
var res = await conn.ReadStreamAsync(Direction.Forwards, streamName, startPosition, Int64.MaxValue, resolveLinkTos: false, cancellationToken: ct)
if (res.ReadState == ReadState.StreamNotFound)
// TODO handle empty
When writing, ConditionalAppendToStreamAsync
don't throw an exception either; you inspect the Status
of the result.