Web uygulamalarında veri akışlarını yönetmek temel bir ihtiyaçtır. Bu ihtiyacı karşılamak üzere tasarlanan WHATWG Streams Standardı (Web streams olarak da bilinir), tarayıcılar ve sunucular arasında ortak bir API sağlamayı hedeflemiştir. Tarayıcılarda, Cloudflare Workers, Node.js, Deno ve Bun gibi runtime'larda benimsenmiş ve fetch() gibi API'lerin temelini oluşturmuştur. Ancak, yıllarca Web streams ile çalıştıktan, Node.js ve Cloudflare Workers'ta uygulamalar geliştirdikten ve müşteri sorunlarını giderdikten sonra, bu standart API'nin temel kullanılabilirlik ve performans sorunlarına sahip olduğu ortaya çıkmıştır. Bu sorunlar, on yıl önce mantıklı olabilecek, ancak günümüz JavaScript geliştiricilerinin kod yazma biçimleriyle uyuşmayan tasarım kararlarının bir sonucudur. Mevcut sorunlar, basit iyileştirmelerle kolayca çözülemeyecek kadar derin köklere sahiptir.
Makale, Web streams ile ilgili temel sorunları inceliyor ve JavaScript dilinin temel yapı taşları üzerine kurulu alternatif bir yaklaşım sunuyor. Bu alternatif yaklaşım, test edilen tüm runtime'larda (Cloudflare Workers, Node.js, Deno, Bun ve tüm büyük tarayıcılar dahil) Web streams'e göre 2 ila 120 kat daha hızlı çalışabiliyor. Bu performans artışları, akıllı optimizasyonlardan ziyade, modern JavaScript dil özelliklerini daha etkili bir şekilde kullanan temelden farklı tasarım seçimlerinden kaynaklanmaktadır. Web streams Standardı, JavaScript'teki async iteration (örneğin for await...of sözdizimi) özelliğinden önce, yani 2014-2016 yılları arasında geliştirilmiştir. Bu durum, API'nin başlangıçta asenkron dizileri tüketmenin güncel ve yaygın yolunu kullanamamasına neden olmuş ve bunun yerine kendi okuyucu/yazıcı edinme modelini getirmiştir. Bu tasarım kararı, API'nin her yönüne yansımış ve yaygın işlemler için gereksiz bir karmaşıklık yaratmıştır.
JavaScript'in Web streams API'sindeki temel tasarım ve performans sorunlarına dikkat çekerek, modern dil özelliklerini kullanan daha hızlı ve kullanışlı bir alternatifin mümkün olduğunu gösteriyor.