Yazar, kariyeri boyunca sıkça karşılaştığı "kuyruk boyutu ne olmalı?" sorusuna kendi bakış açısını yapılandırmak amacıyla bu makaleyi kaleme almıştır. Listeler ve haritalar gibi kuyruklar da en yaygın kullanılan veri yapılarından biridir ve genellikle süreçler veya iş parçacıkları (thread) arasında veri paylaşımı için kullanılır. Başlangıçta, kuyrukların yavaş iş parçacıklarına iş aktarımı için kullanıldığına ve taşma durumunda daha büyük bir kuyruğa ihtiyaç duyulduğuna inanılıyordu. Ancak yazarın deneyimiyle bu anlayış değişmiştir.
Güncel düşünceye göre, kuyruklar ortalama verimi (throughput) artırmaz. Bunun yerine, göndericiler ve alıcılar arasındaki kısa süreli yoğunlukları ve zamanlama farklılıklarını emen tamponlar görevi görürler. Bu sayede, bileşenler farklı veya değişken hızlarda çalışsa bile mesajların güvenilir bir şekilde iletilmesini sağlarlar. Örneğin, bir sistem saniyede 0.5 mesaj işleyebiliyorsa, mesajlar bu hızda geliyorsa tek boyutlu bir kuyruk yeterlidir. Ancak mesajlar bu ortalamanın üzerinde gelirse, kuyruk boyutu ne olursa olsun sistem sonunda aşırı yüklenecektir.
Kuyrukların asıl faydası, sistemlerin ani trafik yoğunluklarını (bursts) yönetmesine olanak sağlamasıdır. Ortalama olarak belirli bir hızda mesaj işleyebilen bir sistem, kısa bir süre içinde gelen yüksek sayıda mesajı kuyruk sayesinde kaldırabilir. Örneğin, 60 saniyede 30 mesaj işleyebilen bir sistem, ilk saniyede 30 mesaj gelirse kuyruk olmadan taşabilir. Kuyruklar, bu tür ani yüklenmeleri dengeleyerek sistemin istikrarlı çalışmasını sağlar. Toplu (batch) sistemlerde, beklenen en büyük veri yığınına göre kuyruk boyutu belirlenebilirken, gerçek zamanlı sistemlerde bu durum daha karmaşıktır.
Kuyruklar, sistemlerin ortalama verimini artırmaktan ziyade, ani trafik yoğunluklarını ve bileşenler arası zamanlama farklılıklarını dengeleyerek istikrarlı veri akışını sağlar.