Транзакции то человек может и освоил, а как их правильно применять — нет. Тут нужно знать про свои инварианты.
Тут еще стоит добавить про оптимистические блокировки на уровне приложения, где в реальности блокировки не происходит, но транзакция упадет в случае если race condition все-таки произошел.
Тут еще стоит добавить про оптимистические блокировки на уровне приложения, где в реальности блокировки не происходит, но транзакция упадет в случае если race condition все-таки произошел.