Persistant Subscription Retry Policy per event type

Hi all,

Might not be the best place to ask this, but is there any planning for having a retry policy per event type in the persistent subscription model?

I know currently for the entire subscription we can set the retry policy, was just wondering if this is a feature that might help a lot of people.

I think it’s possible to do it per event type in the .Net SDK as I see the subscription has a int in the persistent subscription, that I believe to be the amount of times an event has been retried.

Let me know your thoughts?

I have not seen anyone ask for this previously.

The retry policy is currently set per subscription. Note you can also explicitly give in your client code what should be done with a given event in terms of retrying etc.

Can you give me a use case where this would be valuable for you as opposed to just separating subscriptions based on the event type/doing it explicitly in the client?

Hi Greg,

Nice to finally make contact.

As an example.

I have an aggregate that has some basic events that we are subscribing on. On certain events we create snapshots to a read model for quicker access.

On one of the events we trigger a specific email to go out. The processor that is listening on this event from the PS also listens to the other event types.

If for some reason the email sending functionality fails at any point we don’t want to retry it, as it can lead to the email being sent more than once.

The other events we are fine with retrying multiple times as it only updates the read models, and they are idempotent.

Hope my example makes sense.

I have thought about creating a specific projection in ES just for the EmailEvent and then creating another PS for that projection, but this unfortunately leads me to create another service that listens to that specific PS. It’s not costly do to so, but in terms of maintenance it might become a nightmare.

Let me know if you need more clarity on the above.