currently i’m evaluate the migration of my application from the EventStore Client API 2.x to 3.x.
The following questions came up:
1.) SubscribeToAllFrom() vs SubscribeToStreamFrom("$all", …)
What is the real difference between the two Catch-Up subscriptions other then the first is using “Position” as lastCheckpoint and the second is using an integer?
An integer is easier to store in the local storage
2.) SubscribeToXYZFrom() is not async
Any reason why the two Catch-Up Subscriptions are not async as any other method on the client API? (I dont need async here, just want to know)
3.) Catch-Up subscription should always be alive
With the 2.x API i had a lot of work to have the subscription always be alive by getting connection and subscription disconnected/dropped events and calling mySubscription.Start() again.
But this was not always working. Sometimes the subscription was in inactive mode.
As far as i can see the new client api takes care of this and subscribes to the connection.Connected event and restarts the subscription. So i dont have any other work then creating the subscription.
But i want to be sure that this is the case.
4.) Regarding “$all” stream
Is the still the recommend way to get all of your own events of all streams in correct order via subscription (currently i simply ignore everything starting with $) without using projections (that are still beta)
5.) Transaction Support
Greg mentioned that the support for transaction could be removed. Currently i’m using code like this: https://github.com/EventStore/getting-started-with-event-store/blob/master/src/GetEventStoreRepository/GetEventStoreRepository.cs#L115
to write events.
What is the new recommend pattern without transactions to write more events then the write page size? (I don’t know if i’ll ever have more then 5 at once, so just want to know)
Thanks for your help.