Bir işlem kendi sisteminde tamamlanırken dış servise bildirim gönderilemiyorsa kullanıcıya ne söyleyeceksin? Daha zor soru şu: istek zaman aşımına uğradığında karşı tarafın işlemi alıp almadığını nasıl anlayacaksın?
AI bu sorular için yararlı bir tartışma ortağı olabilir. Ama servisin gerçek davranışını bilmiyorsa, kulağa doğru gelen bir yeniden deneme önerisi kolayca mükerrer işlem üretebilir.
Başarılı akışın yanına belirsiz sonucu koy
İlk istemde "bildirim kuyruğu yaz" demem. Önce durumları ayırmasını isterim:
Bir kayıt uygulamada oluşuyor ve ardından dış servise bildiriliyor. Dış servis bazen geç yanıt veriyor. Başarılı yanıt, açık hata, zaman aşımı ve sonucun bilinmediği durumlar için ayrı bir durum tablosu hazırla. Kullanıcıya gösterilecek mesajı, sistemde tutulması gereken durumu ve hangi sorunun hâlâ cevapsız olduğunu belirt. Sağlayıcının desteklediği özellikleri varsayma.
Burada özellikle "sonuç bilinmiyor" satırı önemlidir. Yanıt gelmemesi, işlemin kesinlikle başarısız olduğu anlamına gelmez. Bu ayrımı atlayan bir tasarımda tekrar deneme de kullanıcıya verilen bilgi de yanlış olabilir.
AI'dan ikinci turda eleştiri iste
İlk taslak çıktığında bu kez zayıf noktaları ara: Aynı bildirim iki kez gelirse ne olur? Uygulama işlemi kaydettikten sonra süreç durursa bildirim izlenebilir mi? Dış servis uzun süre yoksa bekleyen işler nasıl görünür? İnsan müdahalesi ne zaman gerekir?
Hazırladığın akışı gözden geçir. Veri kaybına, mükerrer işleme veya yanlış "başarılı" mesajına yol açabilecek üç sınır durumu bul. Her biri için doğrulanabilir bir kabul ölçütü yaz. Çözümü tek bir teknolojiye bağlama.
Bu aşamada AI'dan belirli bir kuyruk ürünü veya kod kalıbı istemek zorunda değilsin. Önce sistemin nasıl davranması gerektiğini netleştirmen, araç seçimini kolaylaştırır.
Servis sözleşmesi son sözü söyler
Hangi yanıtın tekrar denenebileceği, tekilleştirme anahtarının desteklenip desteklenmediği ve durum sorgusu olup olmadığı sağlayıcıya göre değişir. AI'ın bunları genel bilgiyle doldurmasına izin vermem. İlgili API belgesini ve kullandığım sürümü kontrol eder, öneriyi bunlarla karşılaştırırım.
Doğrulama için en azından başarılı yanıtı, kesin hatayı, zaman aşımını ve yinelenen bildirimi temsili verilerle sınarım. Sonuçların operasyon ekranında anlaşılır olması da testin parçasıdır. Sağlam entegrasyon, yalnızca isteği gönderebilmek değil, belirsiz kaldığında ne olduğunu açıklayabilmektir.
