Всё, что мы разбирали до сих пор - Lock, RLock, Condition - работает в границах одного процесса, потому что полагается на общую память внутри процесса. Как только сервис масштабируется на несколько инстансов на разных серверах, вопрос "как защитить общий ресурс от одновременного изменения" встаёт заново, и обычные внутрипроцессные примитивы уже не помогают - у каждого сервера своя собственная память.