If I have process stream for some workflow, like application-{app-guid}
and i have multiple microservices watching for certain events that then write new events to that same application-{app-guid}
, say, an event comes in and sends two services off to query two APIS and then write back to the stream with the data, doesn’t this necessarily create race conditions if I want to guarantee idempotency? Each stream will check the version and write +1.
Do I need to maintain some sort of threadsafe global stream version state or is there a fundamental design problem with this situation?