Dies mit starken Garantien zu tun, ist schwierig, aber nicht unmöglich. Ich habe hier über die Details einer Lösung geschrieben:https://www.alechenninger.com/2020/05/building-kafka-like-message-queue-with.html
Die Beispiele sind in Java, aber der wichtigste Teil ist der Algorithmus.
Es kommt auf ein paar Techniken an:
- Jeder Prozess versucht, eine Sperre zu erlangen
- Jede Sperre (oder jede Änderung) hat ein zugehöriges Fencing-Token
- Die Verarbeitung jeder Änderung muss idempotent sein
- Während der Verarbeitung der Änderung wird das Token verwendet, um geordnete, effektive einmalige Aktualisierungen sicherzustellen.
Weitere Details im Blogbeitrag.