криптой, вся инфа о балансах хранится в бд, как быть уверенным в том что пока проводится сделка между двумя пользователями, один из этих пользователей не вывел деньги? То есть как быть увереным что после проверки if user.balance == trade.amount   баланс пользователя не изменится, все же  делается асинхронно  ?
                  
                  
                
Попробуй сделать в бд constraint
сonstraint в базе на поле balance > 0. И списание делать апдейтом update ... set balance = balance - amount
Обсуждают сегодня