La gestion de l'accès concurrent à une ressource unique par les différents noeuds d'un cluster est toujours un problème épineux.
Concrètement la seule solution possible consiste souvent à introduire un système transverse (Hazelcast dans cet exemple, mais j'imagine qu'on peut faire de même avec un Redis par exemple) qui coordonne les accès et bloque un noeud si la ressource est en cours d'utilisation.