Я могу рекомендовать вам использовать механизм распределенной блокировки, предоставляемый Redis.
Он работает так же, как стандартная блокировка или мьютекс, но работает в контексте распределенной системы. Экземпляр приложения, создающий блокировку, блокирует доступ к ресурсу для внесения изменений, затем снимает блокировку, чтобы другие экземпляры могли получить доступ к ресурсу.
Мы уже используем это решение на производстве, чтобы защитить доступ к некоторым критически важным ресурсам, которые изначально не обеспечивают синхронизацию и согласованность.
Вот ссылка для распределенной блокировки redis:
Распределенные замки с Redis
Я полагаю, что есть и другие решения, обеспечивающие такую же функцию. Redis очень легок, масштабируем и прост в интеграции.