Dilshod.dev
Teglar

#backend

9 maqola

backendpayments

Soya rejimi: kodni ishonishdan oldin isbotlash

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.

3 daqiqa o'qish
system-designbackend

Ikki marta yechilgan to'lov

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.

7 daqiqa o'qish
backendredis

Keshni bekor qilish — amaliyotda

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.

8 daqiqa o'qish
postgresqlperformance

Postgres 18: asinxron I/O va UUIDv7 menda nimani o'zgartirdi

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.

5 daqiqa o'qish
postgresqldatabases

Hech nima qilmaydigan indekslar

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.

10 daqiqa o'qish
backendnodejs

Qulashdan omon chiqadigan background job'lar

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.

11 daqiqa o'qish
architecturepayments

Idempotentlik — bu header emas. Bu shartnoma.

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.

5 daqiqa o'qish
architecturepostgresql

Bitta tushib qolgan WHERE

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.

10 daqiqa o'qish