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