Bütçe Koruyucu İki Kez Geri Ödedi, Batch Limiti Aştı

Bir batch işi çalışırken ilginç bir sorun ortaya çıktı: bütçe koruma sistemi aynı rezervasyonu her retry'da geri ödedi. sayaç %78 gösterirken, gerçekte %100 tüketilmişti. On iki shard'tan üçü quota hatasıyla öldü.

Sorun şu: bir tamsayı counter sadece son durumu gösterir. Geçmiş yok, kim değiştirdi belli değil. Birisi hata yaptığında veya sistem çöktüğünde, o sayı hiç değeri yoktur. Geliştirici de, alet de yalan söylüyorsa, kime güveneceksin?

Fix basitti: bir rezervasyon tam olarak bir kez kapatılabilir. Ama oraya varmak için counter yerine append-only event log kurdu. Her durum değişikliği bir olay olarak kaydedildi. Böylece:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

- Hangi refund'lar yazıldı görebilirsin.
- Duplike kapatma hemen görünür.
- Bütçe hesabı yeniden oynanabilir.
- Ledger asla yalan söylemez.

Batch işlerinde, özellikle dış API'lere karşı token veya quota yönetirken, sayısal counter'a asla güvenme. Ledger kurabiliyorsan kur. Her işlem bir event olsun. Sorun çıktığında geçmişi oynatarak ne yanlış gitti anlarsın.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz