Modern API entegrasyonlarında, yalnızca veri göndermek veya almak değil, tüm olayların bir kez, doğru ve güvenilir bir şekilde işlenmesini sağlamak önemlidir. Ara durumları koruyan bir mimari uyguluyoruz, harici hizmetler ve kuyruklarla çalışırken kayıpları ve kopyaları ortadan kaldırmak için mekanizmaları ve mesaj tekilleştirmeyi yeniden deniyoruz.
Bu, özellikle bir kerelik ve tamamlamanın kritik olduğu işlemler, ödeme ağ geçitleri, webhook etkinlikleri ve arka plan görevleriyle çalışırken önemlidir.
Ne uygulanıyor
| Mekanizma | Amaç ve faydalar |
|---|---|
| Durumu kaydet | Hata konumundan devam etme veya işlem ilerlemesini izleme yeteneği |
| Otomatik yeniden denemeler | Hata durumunda üstel gecikmeyle yeniden deneme |
| Veri tekilleştirme | Aynı isteklerin veya olayların çift işlenmesine karşı koruma |
| Olay kimlikleri | 'Event _ id', 'message _ id', hash izleme desteği |
| Ertelenmiş görevler | Harici servis geçici olarak kullanılamıyorsa daha sonra tekrar deneyin |
Nasıl çalışır
1. Gelen bir istek veya olay benzersiz bir tanımlayıcı alır
2. Giriş işlem günlüğüne eklenir (DB, Redis veya Kafka)
3. Hata durumunda, görev yeniden deneme için kuyruğa alınır (limit ve kontrol ile)
4. Aynı olay tekrar alınırsa, sistem kimliğini kontrol eder ve yinelenen olayı reddeder
5. Denetime açık tüm olay geçmişi ve işleme durumu
API ve Platform Avantajları
Ağ arızaları, tekrarlanan webhook'lar veya istemci hataları için kopyaları ortadan kaldırır
Geçici sorunlar için bile güvenilir teslimat
Harici API'ler ve veritabanları üzerindeki yükü en aza indirme
Doğru kayıt, denetim ve kurtarma
Farklı senaryolar için ölçeklenebilirlik ve esneklik (ödemeler, bonuslar, etkinlikler)
Özellikle önemli olan yerlerde
Finansal işlemler, faturalandırma, mevduat
Oyun etkinlikleri: bahisler, kazançlar, yerleşimler
Webhook'lar ve yavaş API'ler ile entegrasyonlar
Arka plan görevleriyle ağır yük mimarileri
Durumlar, yeniden denemeler ve veri tekilleştirme, API entegrasyonlarını sürdürülebilir kılan şeydir. Mantık tasarlıyoruz, böylece arıza ve dengesiz bağlantı koşullarında bile, verileriniz güvende ve süreçler eksiksiz ve kopyasız.