Kritik yolun dışında senkron işleme yerine kuyruk
Kritik yanıt yolunun dışındaki yan etkiler bir kuyruk üzerinden asenkron çalışır. İstek hızlıca onaylanır; işleme, worker içinde mükerrer işlemleri önleyen (idempotent) biçimde gerçekleşir.
Bu nedir? · Karar kaydı (ADR)
ADR formatında belgelenmiş bir mimari karar — bağlam, incelenen seçenekler, gerekçe ve sonuçlar. Genel bir rehber değil, somut bir karar. Genel bakışa git
- Durum
- Kabul edildi
- Kimlik
- ADR-002
- Gözden geçirme
- Gecikme veya tutarlılık gereksinimleri değiştiğinde yeniden değerlendirilmelidir.
Bağlam
Pek çok işlem yan etkiler tetikler — bildirimler, dışa aktarımlar, üçüncü taraf sistem çağrıları, yeniden hesaplamalar. Bunların istek içinde senkron mu yoksa bir kuyruk üzerinden asenkron mu çalıştığı, gecikmeyi ve dayanıklılığı belirler.
Sorun
Senkron yan etkiler yanıt süresini dahil olan en yavaş sisteme bağlar ve bir yan etki başarısız olduğunda isteğin de başarısız olmasına yol açar. Asenkron işleme ayrışma sağlar, ancak beraberinde eventual consistency ve teslimat semantiği getirir.
Neleri değerlendirdik?
- A
İstek içinde senkron
Basit — ancak gecikme ve hatalar yan etkiye bağlanır.
- B
Kuyruk üzerinden asenkron
Ayrışmış ve daha dayanıklı — idempotency ve izleme gerektirir.
- C
Fire-and-forget
Backpressure yok, yeniden deneme yok, teslimat kanıtı yok.
Neye karar verdik?
Kritik yanıt yolunun dışındaki yan etkiler bir kuyruk üzerinden asenkron çalışır. İstek hızlıca onaylanır; işleme, worker içinde mükerrer işlemleri önleyen (idempotent) biçimde gerçekleşir.
Bu kararın gerekçesi
Kuyruk, yanıt süresini yavaş veya güvenilmez yan etkilerden ayırır ve yeniden denemeyi ile backpressure'ı açık hâle getirir. Idempotency, at-least-once teslimatın mükerrer etkiler üretmemesini sağlar. Yanıt için kritik olan her şey senkron kalır.
Sonuçlar
- Dışarı aktarılan etkiler açısından sistem eventual consistent hâle gelir; kullanıcı arayüzü bunu dikkate almalıdır.
- Kuyruk, worker'lar ve başarısız job'lar görünür olmalıdır.
- Her asenkron işlem mükerrer işlemleri önleyen (idempotent) olacak şekilde tasarlanmalıdır.
Elenen alternatifler
- Her şey senkronGecikmeyi ve hataları en yavaş yan etkiye bağlar.
- Fire-and-forgetYeniden deneme ve teslimat kanıtı olmadan etkiler sessizce kaybolur.
İlgili konular.
Bu sayfayla bağlantılı rehberler, kararlar, hizmetler ve projeler.
Teknolojiler
Kavramlar
Uygulama kılavuzları
Bakış açıları
Benzer bir kararın eşiğinde misiniz?
Bu kararları içgüdüyle vermiyoruz. Sisteminizdeki kararları doğrudan yönetimimizle konuşabilirsiniz.
