Tekrarsız işlem nedir?
Tekrarsızlık, aynı mantıksal işlemin yinelenmesiyle ek bir yan etki oluşmamasını amaçlayan özelliktir. Ağ zaman aşımından sonra yeniden gönderilen kayıt isteğinin ikinci bir rezervasyon oluşturmaması buna örnektir. Birçok uygulama aynı mantıksal istek için sabit bir anahtar ve işlem durumu kaydı kullanır; tek yöntem bu değildir. Anahtarın kapsamı, saklama süresi ve başarısız işlemlerin davranışı tanımlanmalıdır. Yanıtın her alanının birebir aynı olması yerine, işin ek bir kez yapılmaması önemlidir.
Anahtar kapsamı neyi belirler
Anahtarın hangi alanlardan üretildiği, iki isteğin gerçekten aynı sayılıp sayılmayacağını belirler. Yalnızca gönderim zamanı veya her denemede yeniden üretilen istek kimliği gibi her seferinde değişen alanlar anahtara dahil edilirse, aynı katılım talebi iki kez işlenebilir. Tersine, anahtar çok dar seçilirse farklı iki talep yanlışlıkla tek sayılabilir. Bu nedenle hangi alanların iş anlamı taşıdığı önceden yazılı olarak belirlenmelidir.
Yarım kalan işlemler ve süre
Bir işlem tamamlanmadan zaman aşımına uğrarsa kayıt ara durumda kalabilir. Bu durumda yeni gelen aynı istek sonsuza kadar beklememeli; ara durum için bir geçerlilik süresi tanımlanmalıdır. Süre dolduktan sonra sistem işi yeniden deneyebilir, ancak dış sistemde ödeme veya bilet gibi bir kayıt zaten oluşmuş olabilir. Bu yüzden yeniden deneme öncesi dış sistemde durum sorgulanması gerekir.
Saklama ve yanıt boyutu
Tekrar eden isteğe aynı yanıtın dönebilmesi için ilk sonucun saklanması gerekir. Bu sonuç, kullanılan depolama katmanının boyut sınırını aşmamalıdır. Büyük yanıtlar, örneğin tüm katılımcı listesi, kayıt yerine yalnızca bir referans kimliği olarak saklanmalıdır. Ayrıca yanıt, serileştirilebilir yapıda olmalı; aksi halde kayıt yazılamaz ve işlem hata verir.
Temsili işletme örneği
Bir konser organizatörü, bilet satışında ödeme sağlayıcısının onay bildirimini alan bir sistem kurdu. Bildirim, ağ gecikmesi nedeniyle iki kez gönderildi. Sipariş numarasını anahtar olarak kullanan sistem ikinci bildirimi fark etti ve aynı biletleri yeniden üretmedi. Ancak ilk işlem yarıda kesilmiş olsaydı, sistem ara durumda kalan siparişi süre dolana kadar bekletecek ve sonra ödeme sağlayıcısında durum sorgulayacaktı. Bu senaryoda anahtarın yalnızca zaman damgasından oluşması, aynı siparişin iki kez biletlenmesine yol açardı. Temsili bir örnektir. Bu tür bir hata, katılımcının iki bilet alması ve giriş kapısında karışıklık yaşamasıyla fark edilir.
Anahtar kapsamı ve sonuç
| Anahtar seçimi | Olası sonuç |
|---|---|
| İşletme, işlem türü ve sipariş kimliği | Aynı kapsam içindeki tekrarlar tanınır; farklı işlemler birbirinden ayrılır |
| Sipariş numarası ve gönderim zamanı | Her yeniden deneme yeni sayılır |
| Gövdenin seçilmiş, normalize edilmiş iş alanları | Yalnız biçim değişikliklerinin yeni işlem sayılma riski azaltılabilir |
Sık karıştırılan nokta
Yaygın yanlış: Tekrarsız işlem, her isteğin yalnızca bir kez gelmesi anlamına gelir. Oysa ağ tekrarları ve yeniden denemeler kaçınılmazdır; amaç istek sayısını değil yan etkiyi sınırlamaktır. Düzeltme: Sistem aynı isteğin birden fazla gelebileceğini varsayarak tasarlanmalıdır. Bu yaklaşım, yalnızca başarılı işlemler için değil, hata alan işlemler için de düşünülmelidir.
Uygulamada dikkat edilecekler
- Anahtar alanlarını bir tabloda listeleyin; her alanın zamana bağlı değişip değişmediğini ve iş anlamını ekibinizle birlikte yazılı olarak belirtin.
- Ara durumdaki kayıtlar için süre tanımlayın ve süre dolduğunda dış sistemde ödeme veya bilet durumunu sorgulayan bir adım ekleyin.
- Her yanıtın boyutunu ölçün; sınıra yaklaşan yanıtlar için yalnızca kayıt kimliği saklayacak bir alternatif hazırlayın.
- Test ortamında aynı isteği üç kez arka arkaya gönderin ve yalnızca bir kez biletleme, ödeme veya e-posta yan etkisinin oluştuğunu doğrulayın.
Sık sorulan sorular
Tekrarsız işlem, ödeme sistemlerinde tek başına yeterli midir?
Hayır. Tekrarsız işlem yalnızca sistemin kendi tekrarlarını yönetir. Ödeme sağlayıcısının bildirim sırası, dış sistemdeki durum ve iade süreçleri ayrıca izlenmelidir; bu konularda uzman görüşü almak uygun olur.
Anahtar süresi ne kadar olmalı?
Kesin bir süre yoktur; olası yeniden deneme ve geç gelen bildirim süreleri dikkate alınmalıdır. Süre dolunca aynı istek yeniden işlenebilir. Bu yüzden kalıcı iş kuralları, dış sistemin durumu ve depolama ihtiyacı birlikte değerlendirilmelidir.
Teknik kaynak
Teknik tanım için birincil kaynağa başvurulmuştur. İşletme senaryosu açıklama amacıyla hazırlanmış temsili bir örnektir.
İlgili kavramlar
Kavramdan uygulamaya
İşletmenize uyarlamak için ilgili rehberleri inceleyin.
Chatbot Entegrasyonunda Bilgi Okuma ve İşlem YetkisiCanlı Fiyat Bilgisi İle Sabit Fiyat Metnini AyırmakTüm blog rehberleri