Taming eventual consistency - a new approach to synchronization of distributed systems

Hey everyone,

many times, questions similar to “how do I wait for my event handler/saga step to finish” or “how do I know my data has finished projecting” have been asked on this forum, and others. Some of them are answerable with SubscriptionQueries, but that only works in very limited scenarios, and the question in general remains unanswered (other than the ubiquitous “embrace the eventually consistent nature” :stuck_out_tongue_winking_eye:).

I’ve long been dissatisfied with this, and a few months ago, I had an idea on how to fix it, not just for Axon, but for distributed systems in general. I’d like to introduce you to structured cooperation, a concept that builds on structured concurrency, and deals with many of the issues that plague distributed systems, and by extension, Axon.

I would love to get some feedback from the community at large, and discuss if, and how, this would make sense to incorporate into Axon - I honestly think it would benefit greatly. I already implemented a simplified, bolted-on version in the community edition months ago that I can share, but I want to start by opening the conversation and seeing what the community thinks.

1 Like

I can’t say I don’t agree with you here, @Gabriel_Shanahan! If anything, there’s an effort to be made to simplify this for sure. With AF5 knocking on the door, making a shift becomes the opportune moment.

I have not read the article you’ve shared, but will soonish. Once I’ve done so, I might come back to discuss things in more detail.

For now, awesome work that you’re looking into this :raised_hands:

1 Like

Thanks Steven, looking forward to your feedback!