Entegrasyonunuz neden hep ay sonunda bozuluyor
Entegrasyon işini hafife almak kolaydır, çünkü mutlu yol gerçekten basittir. Uç noktayı çağır, alanları eşle, sonucu sakla. Sorun şu ki ayın son iş gününde çalışan şey mutlu yol değildir.
Yavaş olmak, kapalı olmaktan farklıdır
Kapalı bir sistem hızlı ve açıkça hata verir. Yalnızca yavaş olan bir sistem ise bağlantınızı açık tutar, havuzunuzu tüketir ve servisinizi de beraberinde indirir. Zaman aşımınız, sizi çağıranın sabrından uzunsa yukarıdaki bir yavaşlama sizin kesintiniz hâline gelir.
Agresif zaman aşımları ve bir devre kesici koyun. Hızlı ve net biçimde hata vermek, umutla beklemekten neredeyse her zaman daha iyidir.
Tekrar denemenin güvenli olması için idempotency gerekir
Zaman aşımına uğramış bir isteği tekrar denemek, ancak karşı taraf bunu bir tekrar olarak tanıyabiliyorsa mantıklıdır. Aksi hâlde güvenilirlik için eklediğiniz şeyin kendisi mükerrer sipariş, mükerrer fatura ve mükerrer ödeme üretmeye başlar — hem de zaman aşımına yol açan yükün tam ortasında.
- Durum yaratan ya da değiştiren her isteğe sabit bir idempotency anahtarı gönderin.
- Üstel geri çekilme ve jitter kullanın; tekrar denemeler senkronize bir dalga hâlinde gelmesin.
- Deneme sayısını sınırlayın ve kalanı bir kişinin inceleyebileceği ölü mektup kuyruğuna yönlendirin.
Varsaymayın, mutabakat yapın
İki taraf da şu soruyu yanıtlayabilmeli: "bugün kaç kayıt gördün ve toplamları neydi?" Bu yanıtları karşılaştıran günlük bir mutabakat, sessiz bir sapmayı başladığı gün bir alarma dönüştürür.
Kötü güne karşı test edin
Entegrasyonu; yavaş olan, kısmi yanıt döndüren ve yirmi çağrıdan birinde hata veren bir stub'a yöneltin. Üretimde canınızı yakacak şeylerin neredeyse tamamı bunu yaptıktan sonraki bir saat içinde ortaya çıkar ve bunu salı öğleden sonra bulmak, ay sonunda bulmaktan çok daha ucuzdur.