Performance issue reading a stream with DotNet EventStore.ClientAPI

Hello there.

I’ve set up the EventStore (as described in the getting started section via a command line, so it is running on my local machine) and done some tests with it. There are now some events written to a stream and everything seems to work fine as far as functionality goes. However when I am reading from a stream via the ReadStreamEventsForwardAsync function that comes with the EventStore.ClientAPI nuget package (which I guess is only wrapping the HTTP request) I always face a request duration of about 1 second, although there have only been a few (20 at max) simple events written to that stream.

Here is a sample for such an event:

Data
{
“ObjectIds”: [
“1”,
“2”,
“3”
],
“Result”: “Success”,
“Timestamp”: “2018-10-05T16:18:39.3651204+02:00”,
“ErrorMessageCodes”: null,
“Details”: “some detail”
}

Metadata
{
“Type”: “ObjectIdList”,
“Id”: “a2f447be-07a1-4c04-ab44-9a2a6edf3e3f”,
“SourceId”: “a2f447be-07a1-4c04-ab44-9a2a6edf3e3f”,
“MessageId”: “a2f447be-07a1-4c04-ab44-9a2a6edf3e3f”,
“CorrelationId”: “a2f447be-07a1-4c04-ab44-9a2a6edf3e3f”,
“TraceId”: “a2f447be-07a1-4c04-ab44-9a2a6edf3e3f”
}

``

Here is, how I read the events from the store:

Let var conn be the EventStoreConnection like “var conn = EventStoreConnection.Create(settings, new IPEndPoint(this.ip, Defaultport))”

StreamEventsSlice currentSlice;
long nextSliceStart = StreamPosition.Start;
do
{
currentSlice = conn.ReadStreamEventsForwardAsync(
$“application-load”,
nextSliceStart,
200,
false).Result;
nextSliceStart = currentSlice.NextEventNumber;
streamEvents.AddRange(currentSlice.Events);
}
while (!currentSlice.IsEndOfStream);

``

My question is if this is a normal or to be expected
performance behaviour of the EventStore? Is there anything I can do to
speed up the EventStore’s response time?

Best regards

K

just curious, do you get the same behaviour running the same code on the same connection multiple times?

When you say it takes 1 second, are you including the time it takes to create a connection to the Event Store as well?

Steven