New tool for Event Store - Subscription Service

Version 1.0.0 now available:

https://www.nuget.org/packages/EventStore.SubscriptionService/1.0.0

This is a simple service which allow you to configure persistent subscriptions, along with a designated endpoint to deliver the events to.

We have been using this in Production for a few years and decided to open it up to the world to use.

The GitHub repository has some more details, but a few lines of code is all you need:

String connectionString = "ConnectTo=tcp://admin:changeit@127.0.0.1:1113;VerboseLogging=true;";
IEventStoreConnection eventStoreConnection = EventStoreConnection.Create(new Uri(connectionString));

List<Subscription> subscriptions = new List<Subscription>();

subscriptions.Add(Subscription.Create("$ce-Accounts", "Read Model", new Uri("http://127.0.0.1/api/events")));

//You are responsible for the connection.
await eventStoreConnection.ConnectAsync();

SubscriptionService subscriptionService = new SubscriptionService(subscriptions, eventStoreConnection);

await subscriptionService.Start(CancellationToken.None);

GitHub repository:

https://github.com/vmeretail/subscriptionservice

Steven

Hi Steven,

Thank you for sharing your work. Would you mind sharing a use-case you had at work? Thanks to the README.md, I see how it works on the technical side, but I wonder why you need a persistent subscription (besides not having to deal with an offset yourself)?

Yorick

Yorick,

One of our systems is responsible for delivering sales, orders and delivery details to other systems (some are internal, the other are external systems outwith our control).

The Subscripion Service allows us to easily configure these different routes, and then run as a standalone service to control delivering the events.

Hopefully the embedded screenshot gives you an idea of how we run this service, but also, we could spread these persistent subscription over different instances (so if we needed to “pause” delivering events to one route, we could simply stop the service)

Does that help?