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