Kafka, yüksek verimli mimarilerde ve çok sayıda dinleyiciyle öne çıkan dağıtık bir mesajlaşma sistemidir. Ancak, bir iş kuyruğu çözümü olarak kullanıldığında, "head-of-line blocking" (HOL blocking) özelliği gecikmeleri artırabilir. Bu makale, Kafka'nın bu davranışını pratik bir deneyle inceliyor. Kafka mimarisinde mesajlar konulara (topics) gönderilir ve bölümlere (partitions) atanır. Tüketici grupları (Consumer Groups) oluşturarak birden fazla tüketici bir konudan okuyabilir ve her tüketiciye belirli bölümler atanır. Aynı tüketici grubundan iki tüketici aynı bölümden okuyamaz. Eğer bir tüketici (örneğin Consumer 0) bir mesajın işlenmesi uzun sürerse, sorumlu olduğu bölümdeki diğer tüm bekleyen mesajlar da beklemeye devam eder. Bu durum, Kafka'nın iş kuyruğu olarak kullanıldığında performans darboğazlarına yol açabilir.
Makale, bu durumu Beanstalkd gibi diğer çözümlerle karşılaştırıyor. Beanstalkd'da işler tüplere (tubes) gönderilir ve tüketiciler sunucuya bağlanarak bir tüpten işleri rezerve eder. Beanstalkd'da, belirli bir tüketici yavaş olsa bile, işler kuyruktan mevcut tüketicilere servis edilmeye devam ettiği için HOL blocking bir sorun teşkil etmez. Geleneksel iş kuyruğu mantığıyla, bir iş yalnızca bir tüketiciye atanır ve rezervasyon süresi dolarsa iş yeniden kuyruğa alınır. Bu, Kafka'nın birden fazla tüketici grubuyla aynı mesajları farklı hızlarda işleme yeteneğinden farklıdır, zira Beanstalkd daha çok geleneksel bir iş kuyruğu gibi çalışır.
Deneyde, her iş senkronize bir uyku süresini temsil ediyor. Toplam 100 iş oluşturuluyor ve bunlardan 4'ü 10 saniyelik uyku süresine sahipken, diğerleri 0 saniyelik uyku süresine sahip. Tek bir tüketici olduğunda tüm işlerin tamamlanması en az 40 saniye sürerken, sınırsız sayıda tüketici olduğunda bu süre 10 saniyeye düşer. Bu deney, Kafka'nın HOL blocking etkisini ve iş kuyruğu senaryolarında nasıl farklı davrandığını açıkça ortaya koyuyor.
Kafka'nın dağıtık mesajlaşma sistemlerinde yüksek verim sağlarken, iş kuyruğu olarak kullanıldığında "head-of-line blocking" nedeniyle gecikmelere yol açabileceğini ve bu durumun geleneksel iş kuyruklarından farklı çalıştığını gösteriyor.