Processmanager/Saga and implementation


I am converting an old eventsourced app to using Eventstore as backend. We now have sagas running on one node in our cluster only. This to make sure that two nodes dosen’t get the same message at the same time and issue duplicate emails.

Sagastates are stored in a db, i want to convert these and will probably still use a db for storing the state.

What i am looking at is to stop using akka cluster to select a single node to run sagas. This because we have had issues with akka cluster in the past.

I was looking at competing consumer, and wondered if that is production ready yet? We use Eventstore.JVM driver? Can competing consumers send messages to only one node? Or do i need to have inflight to 1 for that to happend?

Is there some other nice way to only have one node process events for a saga that i haven’t thought about with eventstore?

Competi consumers don’t exist yet in jvm api though there is a http one on a branch that you could use. .net is going out in next binaries and seems reasonable for use (many use already)