I made some tests in .NET about EventStore and I have some questions about the design of the .NET client.
I have the feeling the streams and the projections are totally separated in the client…
To interact with the streams (events) I just need to create an instance of I*EventStoreConnection *which is pretty easy thanks to the Create static method: an URI and it’s OK.
To interact with the projections I thought I would be able to use the same object but it’s not.
I need to create an instance of ProjectionsManager. In order to create that I need :
- A logger (specific interface from EventStore).
- An endpoint (not an URI).
- An operation timeout.
- A schema (optional).
Maybe I’m missing something but I don’t understand why:
- Both are totally separated?
- Both are so different? Why can’t I create a ProjectionManager in the same way as EventStoreConnection?
I mean let’s take ADO.NET. I create a DBConnection and this connection allows me to do basic queries or call some store procedures. Two different mechanisms on the server (queries/stored procedures) but the same connection from the client (just few adaptations)…
I also have another (more basic) question: Why in the EventStoreConnection there is not property to know if the connection is connected ?
I subscribed to the Connected/Disconnected events to maintain the IsConnected value but I have the feeling it’s not the best way to do it…
Thanks you in advance if you can answer to these questions