Wire, yapay zeka ajanları için bağlam konteynırları sunan bir platformdur: işlenmiş bilgi (girdiler, gömülü vektörler, bilgi ve kaynak grafikleri) depolar ve bunları MCP (Model Context Protocol) üzerinden sorgular. Kurulduğu günden beri her konteynır bir Cloudflare Durable Object idi. Ancak bu değişiyor. Wire, konteynır çalışma zamanını sıfırdan yeniden inşa etti, aynı verilerle eski sisteme karşı kıyasladı ve ilk çalışma alanlarını kendi oluşturduğu veri düzlemine taşıdı. Bu makale, bu dönüşümün arkasındaki performans karşılaştırmasını anlatıyor.
Bu bir "Cloudflare'den ayrıldık" yazısı değil. Wire, Cloudflare'i seviyor ve mümkün olan her yerde kullanmaya devam ediyor: API, ön yüzler, kontrol düzlemi ve işleme hâlâ Workers üzerinde çalışıyor. Durable Objects, binlerce küçük, çoğunlukla boşta duran durumlu birim için neredeyse mükemmel bir uyum ve üzerinde geliştirme yapılabilecek en hızlı platformlardan biri. Wire'ın ayrılma nedeni güvenilirlik değil, dört yapısal sınırlamaydı.
İlk sınırlama: Vektör indeksi nesnenin dışında yaşıyordu. Bir konteynırın en önemli işlevi olan bilgi erişimi, gömülü vektörlerin ayrı bir hizmet olan Vectorize'da saklanması nedeniyle en sıcak yolda bir ağ atlamasına ve sürüklenebilecek ikinci bir durum kopyasına neden oluyordu. DO SQLite eklenti yüklemediğinden indeks asla nesnenin içine taşınamazdı. İkinci sınırlama: İşlemin verinin yanında olmasını istedik. Bilgi erişimi çok aşamalı bir boru hattıdır ve Durable Objects üzerinde yalnızca ince bir dilim verinin yanında çalışabiliyordu; geri kalanı nesnenin etrafındaki hizmetlere ihraç ediliyordu. Her atlama gecikmesi ve değişkenlik kritik yola ekleniyordu.
Üçüncü sınırlama: Yerleşim yalnızca oluşturma anında yapılabiliyor ve işlem gücü her zaman paylaşılıyordu. Bir konteynır Londra'da oluşturulduysa, sonsuza kadar Virginia'daki bir ajan filosuna hizmet ediyordu. Ayrıca tek bir kiracı için özel kapasite satın alınamıyordu. Wire, arayanları takip eden bir yerleşim ve ürün katmanı olarak izolasyon istiyordu: ücretli çalışma alanları kendi süreçlerini ve makinelerini almalıydı. Dördüncü sınırlama: Durable Object kendi kendine barındırılamaz. Düzenlemeye tabi ekipler, konteynırları kendi kontrol ettikleri altyapıda çalıştırmak istiyor. Yalnızca Cloudflare'de var olan bir çalışma zamanı bunu sağlayamaz.
Wire'ın inşa ettiği yeni sistemde her organizasyon, tüm konteynırları için Fly Machines üzerinde bir ana süreç (Bun) alıyor. Bir konteynır, sqlite-vec ile gömülü vektör indeksi olan tek bir SQLite dosyasıdır, böylece aday erişimi süreç içinde gerçekleşir; model çağrıları, sorgu gömme ve yeniden sıralama hâlâ çıkarım hizmetine gider. Anlık görüntüler nesne depolamaya gider, böylece bir konteynır herhangi bir yerde bayt bayt yeniden oluşturulabilir. Bölge başına bir yönlendirici, konteynırları arayana yakın yerleştirir ve kontrol düzlemi, imzalı isteklerle veri düzlemiyle iletişim kurar ve konteynır içeriğine asla dokunmaz.
Performans karşılaştırmasında sıcak araç çağrıları yaklaşık 0,3 saniyede sabit kalırken, önceden 0,4 saniye ve 2 saniyeyi aşan ani yükselmeler vardı. Boşta bir konteynır uçtan uca 1,4 saniyede uyanırken, önceden 3,7 saniyeydi. Bu son sayı, Durable Object soğuk başlatma süresi değil; Wire'ın kendi yığınının kendini yeniden birleştirme süresiydi. Yüzeyde hiçbir şey değişmedi: aynı konteynır URL'leri, aynı beş MCP aracı, aynı REST API, aynı yanıt şekilleri. Ajanlar aynı adresi çağırmaya devam ediyor; taşınan bir konteynıra gelen istekler yeni çalışma zamanı tarafından yanıtlanıyor.
Dayanıklılığı geri satın almak gerekiyordu. Durable Objects, her yazma işlemini onaylamadan önce çoğaltır. Wire'ın ilk çözümü yalnızca "bir sonraki denetim noktasına kadar dayanıklı"ydı ve yük altında makineleri öldüren testler, onaylanmış birkaç yazma işleminin kaybolduğunu gösterdi. Gerçek çözüm, sürekli WAL (Write-Ahead Log) gönderimiydi. Bir yazma, WAL çerçevesi nesne depolamaya ulaşana kadar onaylanmaz; grup commit bunu yaklaşık 100 ms'de tutar ve ölü bir makine onaylanmış yazmaları götüremez. Wire, yukarıdaki dört şeye ihtiyacınız yoksa platformda kalmanızı öneriyor. Yeni çalışma zamanı beta aşamasında: önizleme ortamı ve isteğe bağlı üretim çalışma alanları bugün kullanılabilir. Tam üretim geçişi, dayanıklılık eşikleri yeşil kaldıkça devam edecek. Geçiş tamamlandığında, konteynır çalışma zamanını açık kaynak olarak yayınlamayı planlıyorlar.
Kaynak: usewire.io