validation
Catatan teknis seputar web development, DevOps, dan integrasi AI.
3 artikel
- 03.30backend
Re-Parent Satu Kategori, Tree-nya Ikut Nyiklus
Validasi parent yang cuma ngecek self-parent itu ilusi: re-parent ke keturunan sendiri diam-diam bikin siklus, dan MySQL 5.7 nggak punya CTE cycle avoidance.
TL;DR: Mindahin A jadi anak B bikin siklus karena B itu anaknya A, validasi lama cuma cek parent bukan diri sendiri. Sekarang validateCategory manjat ngecek leluhur satu-satu pakai GetCategoryByID dan errors.Is sampai root, kalau id sama ya ditolak. Biar gak muter terus kalau data lama udah rusak, jalurnya dibatasin cuma sepuluh level aja.
#golang#mysql#backend - 12.24backend
Invalidasi Cache Redis: Naikkan Versi, Jangan Hapus Key
Ganti cara invalidasi cache jawaban chat AI: bump versi namespace dengan INCR supaya key lama unreachable, bukan dihapus satu-satu.
TL;DR: Jawaban chat AI yang di-cache di Redis jadi basi tiap artikel berubah, dan masalah utamanya bukan SCAN yang blocking melainkan fan-out invalidasi yang rumit. Solusinya versioned key: tiap mutasi nge-bump counter versi via INCR, key lama jadi unreachable dan mati sendiri lewat TTL 24 jam. Bonusnya ada lookup mundur ke versi sebelumnya dan fallback persona saat LLM down.
#redis#caching#cache-invalidation - 18.30ai
AI yang tahu lagi kerjain apa: grounding ke commit terbaru
Chat AI blog yang jawab 'lagi kerjain apa' dari commit history lokal — port sempit, cache version namespace, dan mining istilah dari commit message.
#fastapi#redis#cache-invalidation