Hi,
Just started with the Eventstore, and trying to find out it’s possibilities. I have it running but it gave way to some questions:
I’m running “EventStore.SingleNode --db data” which I have downloaded from GitHub. And I’m adding events using the C# ClientAPI. I’m just using the TestEvent that is defined in the Test cases like this:
using (var connection = EventStoreConnection.Create())
{
connection.Connect(tcp, null);
var append = connection.AppendToStreamAsync(stream, ExpectedVersion.NoStream, new[] { new TestEvent(data, headers) });
append.Wait();
}
where data and headers will translate into 2 empty (0x20) 400 byte arrays. Connection is made using TCP which I think would be the fastest type.
Question 1:
Calling the above code a couple of thousand times from 1 thread yields around 55 msg / sec. Is that the expected throughput?
Question 2.
I see that the ClientAPI only accepts IEvent type messages which means that any client must reference EventStore.ClientAPI.dll right?
Question 3.
In our case, the Eventstore would be used within a repository where I need to be transactional. So if my event publisher fails, the eventstore commit must be rolled back. And vice versa. There is a “DeleteStreamAsync” method in the API. Is that what I would use to “undo” in the EventStore? Do you have any description or something that shows in words or diagram how to incorporate the Eventstore in an existing transaction?
Thanks.