data-infra
Sözlük ↗Teslimat Semantiği (Delivery Semantics)
Teslimat semantiği, bir mesajlaşma sisteminin bir mesajın tüketicisine kaç kez ulaştığına dair verdiği garantiyi tanımlar: en fazla bir kez, en az bir kez ya da tam olarak bir kez. En fazla bir kez, mesajları düşürebilir ama asla çoğaltmaz. En az bir kez, bir mesajı asla kaybetmez ama bir yeniden denemeden sonra birden fazla teslim edebilir. Tam olarak bir kez idealdir ve en zorudur — her mesaj bir kez iner, kayıp yok, çift yok. Pratikte çoğu kuyruk ve akış (SQS, Kafka, RabbitMQ) en az bir kezi varsayılan alır, çünkü kayıp olmamasını garanti etmek çift olmamasını garanti etmekten kolaydır. Gerçek tam-bir-kez genellikle uçtan uca bir sihir değildir; en az bir kez teslimat artı bir mesaj anahtarına göre yineleme ayıklayan idempotent tüketicilerdir. SaaS geliştiricileri için bu seçim, para tahsil eden ya da durum değiştiren her şeyde doğruluğu belirler. Pratik not: En az bir kezi varsayın ve işleyicilerinizi idempotent yapın — işlenmiş mesaj kimliğini saklayın ya da bir upsert kullanın — böylece yeniden teslim edilen bir "kartı tahsil et" olayı müşteriyi iki kez faturalandırmaz.
İlgili terimler