Думал, вкачусь в крипту и буду просто дёргать API блокчейнов
Сеть чихнула. Два одинаковых вебхука. Без идемпотентности юзер получает двойной баланс за счёт платформы. Юзер жмёт вывод как пулемёт. Без SELECT FOR UPDATE баланс в минусе раньше чем сработает валидация. Блок был, транзакция confirmed, сеть передумала. Бэкенд врёт юзеру. Классика. Лечится один раз, если знаешь как. Идемпотентные ключи на каждом зачислении. Двойное зачисление невозможно по конструкции. SELECT FOR UPDATE NOWAIT на балансах. Celery с retries и гарантированной доставкой. Жёсткие статусные машины. ACID PostgreSQL. 8 месяцев в проде. 0 дублей. Throughput 4x. Webhook 100%. Крипта это когда данные сходятся до копейки при любом сбое сети.
· 14.04
А что будет с криптой если хуситы ***** датацентры в Сауд.Аравии? Celery retry, ну пожалуйста… Просто поймал себя на мысли как раз о том что select for update тоже был для "невозможности"...
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 14.04
Ядерный удар в ТЗ не указан, каюсь)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён