When creating a new persistent subscription in EventStore, there are many options to configure. The extra statistics option was a peculiar one, once enabled there is no indication on what it is doing and where you can see the extra statistics. My previous post about viewing more detailed information on an EventStore persistent subscription likely gave away the answer, the json result of the info link for the persistent subscription has a connections collection. With extra statistics enabled you will see statistics gathered for each connection. Continue reading “Eventstore – Extra Statistics Option on Persistent Subscription – Where is it?”
I was recently working on a connection issue with Eventstore and persistent subscriptions, when I came across a helpful url that gives more detail about the persistent subscription.
Eventstore’s competing consumer pattern is implemented through the use of persistent subscriptions. Competing consumers is a great pattern to use when you need multiple consumers pulling from a single stream with the state of the stream being managed by EventStore. In order for the consumer to keep receiving messages they must ack/nack the message they received in some way. The happy path would lead to the consumer being able to process the message and returning an ack back to signify that the message was processed. If a consumer is unable to process the message, there are multiple options that can be taken, likely ending in the message being parked. Each subscription group created will have another stream available known as the parked message queue. Messages which are not acknowledged can be put into this queue for diagnosis later. Through EventStore’s web ui, you can easily click the replay parked messages link for a particular subscription group. If there is a need to programmatically replay this queue it can be done through the REST API.
Here is an example on how to programmatically invoke the replay parked messages functionality. Continue reading “EventStore HTTP API – Replaying Parked Messages in C# with HttpClient”