Farlo con forti garanzie è difficile ma non impossibile. Ho scritto i dettagli di una soluzione qui:https://www.alechenninger.com/2020/05/building-kafka-like-message-queue-with.html
Gli esempi sono in Java ma la parte importante è l'algoritmo.
Si tratta di alcune tecniche:
- Ogni processo tenta di ottenere un blocco
- Ogni lucchetto (o ogni modifica) ha un token di scherma associato
- L'elaborazione di ogni modifica deve essere idempotente
- Durante l'elaborazione della modifica, il token viene utilizzato per garantire aggiornamenti ordinati ed efficaci.
Maggiori dettagli nel post del blog.