Как я делаю бэкенд с ИИ в 2026: защита от дублей заказов на Redis (NestJS) ч6
Шестая часть бэкенда сервиса доставки Dispatchr на NestJS + TypeORM + PostgreSQL, пишу вместе с Claude Code. В этой серии делаю идемпотентность создания заказа через Redis: если клиент из-за медленной сети отправит один и тот же POST /orders дважды, второй заказ не создастся. Разбираюсь, почему ключ нужно класть в Redis до создания заказа, а не после, пишу проверку заголовка Idempotency-Key, setNX со статусом in-progress, запись id заказа после коммита и удаление ключа при ошибке. Claude на ревью находит четыре ошибки сразу — от неработающего catch без await до сгоревших номеров заказов, — чиню их по одной, подключаю Pino-логгер и разбираюсь, почему Nest сам прячет детали 500-й ошибки от клиента. Стек: NestJS, TypeScript, TypeORM, PostgreSQL, Redis, Postman, VS Code, Claude Code. Таймкоды: 00:00 Вступление 00:06 Задача: идемпотентность создания заказа 01:20 Почему ключ кладём в Redis до создания, а не после 02:21 Подключаю RedisService в сервис заказов 03:58 Пишу проверку Idempotency-Key через Redis 05:27 setNX, статус in-progress и try/catch 07:17 Заголовок Idempotency-Key в контроллере 08:49 Ревью Claude: четыре ошибки в идемпотентности 10:16 Переставляю транзакцию и запись ключа 11:51 Логгер и удаление ключа при ошибке 14:35 Декоратор и проверка заголовка 15:35 Ревью: catch не ловил ошибку без await 17:05 Pino-логгер с объектом ошибки 18:06 Почему throw error, а не своя 500 19:07 Финальные правки и проверка tsc 20:10 Итог 20:22 Финал МУЗЫКА (NoCopyrightSounds, ncs.io): Razihel — Faster Strybo — Curse ANGELPLAYA — PULL UP ATSMXN, XTOM — Enemies ANGELPLAYA — PSYCHOPATHIC ATSMXN, VØJ — Blade Fury XTOM, ATSMXN — The Raven DYNAMIS, HXDES — Kapoeira Phonk 1$K1 — GODSLAYER DJ FKU — EXECUTIONER HXI — Lock n' Load Warriyo, LXNGVX — Mortals Funk Remix LXNGVX — Royalty Funk Emin Nilsen — BANE DR MØB, Chris Linton — Fearless Funk BVSSL7ON, ANIZYZ — THE REDEEMER Kamran747, Emin Nilsen — BANDIDO FUNK CHASHKAKEFIRA — MONTAGEM FAVELA ANGELPLAYA — DANGEROUS Emin Nilsen — VIDA NOVA Music provided by NoCopyrightSounds. Free Download / Stream ХЕШТЕГИ: #nestjs #typescript #backend #claudecode #программирование #postgresql #typeorm #разработка #coding #phonk
Название:
Как я делаю бэкенд с ИИ в 2026: защита от дублей заказов на Redis (NestJS) ч6
Категория:
Разное