Joytop'dagi yangi to'lov tasdiqlash kodi bir hafta productionda soya rejimida ishladi — qaror qabul qilmasdan, faqat kuzatib. Ertaga u yagona qaror qiluvchiga aylanadi. Soya rejimi nima, u nimadan himoya qiladi va nega uni kuzatuvsiz yoqib qo'yib bo'lmaydi.
Qayta urinish takroriy so'rov emas — to'lov ikki marta o'tib ketguncha. Idempotentlik kalitlari aslida qanday ishlaydi, sodda variant nega baribir ikki marta yechadi va qaysi Postgres cheklovi kafolatni haqiqiy qiladi.
Node 24 tiplarni ishga tushirish paytida olib tashlaydi, ya'ni `node server.ts` shunchaki ishlaydi. Bu chinakam foydali — lekin bu Node TypeScript'ni qo'llab-quvvatlaydi degani emas. Chegara aslida qayerdan o'tishini ko'ramiz.
Hazil bu ikkita qiyin muammodan biri deydi. Haqiqat esa shuki, ko'p jamoalar bekor qilish strategiyasini umuman yozmaydi — ular TTL yozib, umid qiladi. Muqobillar aslida nimaga tushishini ko'ramiz.
Asinxron I/O va ichki `uuidv7()` — asosiy yangiliklar shular edi. Ulardan biri men ikki yil chetlab o'tib kelgan muammoni jimgina hal qildi; ikkinchisi esa benchmarklar va'da qilganidan kamroq ish qildi.
Index qo'shdingiz, query'ni ishlatdingiz — u hamon sekin. Planner sizni mensimayotgani yo'q — u sizga ma'lumotingiz, ustunlar tartibi yoki tiplaringiz haqida nimadir aytyapti. Uni qanday o'qishni ko'ramiz.
Deploy worker'larni ish o'rtasida qayta ishga tushirdi va xatlar shunchaki yo'q bo'ldi. O'lgan jarayon ma'lumot yo'qotish emas, shunchaki kechikish bo'ladigan queue qanday quriladi.
Har bir to'lov provayderi webhook'ingiz idempotent bo'lishini talab qiladi. Buning aslida nima talab qilishini deyarli hech kim aytmaydi — bu identifikatsiya haqidagi qaror, holat haqidagi qaror va dalilni qo'yadigan joy.
Dasturchining esida turishiga tayangan tenant izolyatsiyasi bir kun baribir buziladi — buning uchun bitta query yetadi. Chegarani Postgres ichiga tushirib, unutishning o'zini imkonsiz qilish yo'li.