Faire cela avec de solides garanties est difficile mais pas impossible. J'ai écrit sur les détails d'une solution ici :https://www.alechenninger.com/2020/05/building-kafka-like-message-queue-with.html
Les exemples sont en Java mais la partie importante est l'algorithme.
Cela se résume à quelques techniques :
- Chaque processus tente d'obtenir un verrou
- Chaque serrure (ou chaque changement) a un jeton de clôture associé
- Le traitement de chaque modification doit être idempotent
- Lors du traitement de la modification, le jeton est utilisé pour garantir des mises à jour ordonnées et efficaces une seule fois.
Plus de détails dans le billet de blog.