Это проще всего сделать с помощью таблицы БД. Обычно БД уже отказоустойчива и является безопасным ресурсом для использования в сценарии с общей блокировкой. Просто имейте таблицу блокировки, которая содержит некоторую информацию о заблокированном ресурсе, у кого он есть, когда и т. Д.
Вы также можете использовать один из различных «серверов состояний» на рынке для хранения состояния блокировки. Это вводит точку отказа, если вы не инвестируете в одну из более новых технологий распределенного состояния.
Однако вы действительно настраиваетесь на дальнейшие проблемы. Вам понадобится экран, чтобы разрешить принудительную разблокировку, просмотреть, кто имеет блокировку, и т. Д. Лучше всего посмотреть, почему эта блокировка действительно необходима. Это технология или бизнес-требование? Вы можете проще и понятнее реализовать сценарий обновления пессимистичных данных, который улучшит взаимодействие с пользователем.