Kullanılabilirliği değil, teslimatı kontrol eden sonda
`GET /api/health/contact`, bir lead şu anda bir insana ulaşabiliyorsa 200, ulaşamıyorsa 503 yanıtlar. İki şeyi ayrı ayrı kontrol eder: bildirim kanalının jetonunun hâlâ geçerli olduğunu (sağlayıcıya 8 saniyelik zaman aşımıyla gerçek bir istek) ve istek günlüğünün yazılabilir olduğunu. Yanıt yalnızca mantıksal değerlerden oluşur — asla jeton, kanal kimliği veya bot adı değil. Sonuç 60 saniye bellekte tutulur, böylece sık bastırılan dış bir sonda kendi başına trafiğe dönüşmez. Sağlayıcıya erişilemiyorsa alan `null` olur, `false` değil: “bilmiyorum” ve “geçersiz” farklı durumlardır.
Teslimattan sonra değil, önce yazılan günlük
Her istek bir kimlik alır ve bir append-only günlüğe, olay başına bir JSON satırı olarak, bildirim denenmeden *önce* yazılır. Aynı kimliğe sahip ikinci satır, gerçekte ne olduğunu söyler: `delivered` veya `failed`, neden 300 karaktere kırpılmış olarak. Dizin `0700` izinleriyle, dosyalar `0600` ile oluşturulur ve yol bilerek sürüm dizininin dışına konur, böylece geçmiş bir yayından sağ çıkabilsin.
Yayından sonra çalıştırılan kabul doğrulaması
Bir doğrulama betiği, her ürün sayfasını üçerli gruplar halinde açar ve 200 kodu, soru ankrası, örnek ankrası ya da kanonik adres eksikse başarısız olur. Ardından site haritasını kontrol eder — açılmayan dil varyantlarını içermemesi ve her ürünü içermesi gerekir — ve `robots.txt` dosyasını, oluşturma için gerekli kaynakları engellememesi için denetler. Ayrıca sayfada eski bir müşteriden içerik yeniden belirdiğinde de başarısız olur. Bu, bir kez zaten bozulmuş şeylerin listesidir.
Kapıyla yapılan güncellemeler, umutla değil
Yayınlama betiği, sunucuda 500 MB’den az boş bellek varsa çalışmayı reddeder, `npm audit --audit-level=high` çalıştırır ve siz açıkça onaylamazsanız yüksek düzeydeki güvenlik açıklarında durur, ardından temiz derleme yapar — `.next` ve `node_modules` silinir, kurulum kilit dosyasından yapılır. Süreç başlatıldıktan sonra `online` görünmezse, betik son 50 günlük satırını gösterir ve başarı bildirmek yerine hata ile çıkar.
Eşiklerle yeniden başlatma, rastgele değil
Süreç, 4 saniyelik denemeler arası gecikme, üstel gecikme artışı ve 10 kararsız yeniden başlatmadan sonra durma ile 500 MB bellek üzerindeyken otomatik olarak yeniden başlatılır — böylece bir çökme döngüsü sunucuyu sessizce tüketmek yerine görünür hale gelir. Durdurma için ek süre: 5 saniye, ardından zorla sonlandırma. Günlükler, tek bir akışta tarih ve saat dilimi içerir.
Çiftler iki kez sayılmaz, işlenir
Aynı kişi, aynı mesaj, iki kez — çift tıklama, sayfa yenileme — tek bir istek için iki özdeş bildirim üretiyordu. Şimdi adres + mesaj çiftinin `sha256` parmak izi 10 dakika boyunca bellekte tutulur; ikinci gönderim aynı istek kimliğini ve `duplicate` işaretini alır, bildirim tekrarlanmaz. Yalnızca başarılı bir teslimatın kopyaları bastırılır; başarısız olanın yeniden geçmesine izin verilir.
Ne kırıldığını söyleyen hata kodları
Geçersiz veriler için 400, yanlış yöntem için 405, bozuk istek gövdesi için 500, teslimat kanalı kötü yanıt verdiğinde 502, kimlik bilgileri eksik olduğunda 503. Fark, sabah 3’te önemlidir: 502 „sağlayıcı” demektir, 503 „bizim yapılandırmamız” demektir. Ziyaretçiye açıkça „isteğinizi aldık, ancak bildirim gönderemedik” denir — sahte bir başarı değil.
Siyasette vaat edilen değil, kodla uygulanan saklama
Yayınlanan gizlilik notu, formdan gelen taleplerin 24 ay saklandığını söyler. Kod tam olarak aynı sayıyı uygular: `LEAD_RETENTION_DAYS` varsayılan olarak 730’dur ve eşiğinden eski dosyalar, unutulabilecek bir zamanlayıcı olmadan her yazmada silinir. IP adresi ağ önekine kırpılır — IPv4 için `/24`, IPv6 için `/48` — ve ilk değil, son atlama başlıktan okunur, çünkü ilki istemci tarafından gönderilir.
Kimsenin şikayet etmediğini de buluyoruz
Aynı kod geçişi, hiçbir kullanıcının bildirmediği iki şeyi ortaya çıkardı: dakikada 10 istek sınırı tamamen aşılabiliyordu, çünkü yönlendirilmiş adresler başlığındaki ilk öğe okunuyordu — istemci tarafından kontrol edilen öğe — ve telefon aramalarını başlatan bir rota anonim olarak, masrafı ve numaramız üzerinden açıktı, oysa onu kullanan bileşen artık hiçbir yere monte edilmemişti. İkisi de düzeltildi ve üretimde doğrulandı.