Fazer isso com fortes garantias é difícil, mas não impossível. Eu escrevi sobre os detalhes de uma solução aqui:https://www.alechenninger.com/2020/05/building-kafka-like-message-queue-with.html
Os exemplos estão em Java, mas a parte importante é o algoritmo.
Tudo se resume a algumas técnicas:
- Cada processo tenta obter um bloqueio
- Cada bloqueio (ou cada alteração) tem um token de vedação associado
- O processamento de cada alteração deve ser idempotente
- Ao processar a alteração, o token é usado para garantir atualizações ordenadas e efetivas.
Mais detalhes na postagem do blog.