6 Ekim 2026 · Bulut ve altyapı
Cloudflare R2 üzerine veri katmanı kuruyor: K2, Basin ve KV Instant ne getiriyor?
Cloudflare 1 Ekim'de broker yönetimi gerektirmeyen olay akışı servisi K2'yi duyurdu, Iceberg tabanlı veri platformu Basin'i genel kullanıma açtı ve 2 milisaniyenin altında okuma vaat eden KV Instant'ı tanıttı. Bu yazıda üçünün ne işe yaradığını, sınırlarını ve hangi senaryoda anlamlı olduğunu inceliyoruz.
Cloudflare'in her yıl düzenlediği Birthday Week bu yıl 28 Eylül – 2 Ekim arasında yapıldı ve onlarca duyuru içerdi. Yapay zeka ajanları, post-kuantum kriptografi ve sertifika otoritesi gibi başlıklar çok konuşuldu. Ama altyapı açısından en dikkat çekici gün bence 1 Ekim'di: Cloudflare aynı gün üç ayrı veri ürünü duyurdu ve üçü de aynı yöne işaret ediyor. Şirket artık yalnızca CDN ve edge fonksiyonları sunan bir ağ değil; Kafka, veri gölü ve dağıtık konfigürasyon deposu gibi klasik altyapı parçalarını R2 nesne depolaması üzerine yeniden inşa etmeye çalışıyor.
Bu yazıda üç ürüne tek tek bakıp, Workers kullanan ya da küçük ekiplerle veri altyapısı yürüten geliştiriciler için ne anlama geldiğini tartışacağım.
K2: Broker'sız olay akışı
K2, Cloudflare'in kendi tanımıyla sunucusuz bir olay akışı (event streaming) servisi. Mantığı Kafka'ya çok benziyor: üreticiler sıralı ve kalıcı bir log'a olay yazar, tüketiciler bu log'u kendi hızlarında okur. Fark, altta yönetmeniz gereken bir broker kümesinin, partition sayısı ayarının ya da ZooKeeper/KRaft derdinin olmaması. Log doğrudan R2 üzerinde, partition'lara bölünmüş biçimde tutuluyor.
Şu an Workers Paid planındaki hesaplara açık bir public beta durumunda. Beta sınırları şöyle:
- Hesap başına en fazla 10 GB depolama
- Akış başına saniyede 30 MB yazma
- Varsayılan saklama süresi 7 gün
- p99 yazma gecikmesi yaklaşık 1 saniye
Beta süresince ücret alınmıyor. Beta sonrası için açıklanan fiyatlar ise üretilen ve tüketilen veri için GB başına 0,04 dolar, saklanan veri için GB başına aylık 0,02 dolar.
Workers içinden yazmak bir binding üzerinden yapılıyor:
await env.EVENTS.send([
{
content: new TextEncoder().encode(JSON.stringify({ event: "page_view" })),
headers: { "content-type": "application/json" },
},
]);Tüketim tarafında abonelik (subscription) modeli var. Tüketici bir grup olayı kiralıyor (lease), işledikten sonra onaylıyor (ack), başarısız olursa tekrar teslim istiyor (nack) ya da işlem uzun sürecekse kira süresini uzatıyor. Aynı aboneliği paylaşan tüketiciler işi bölüşüyor; her tüketiciye ayrı abonelik verirseniz klasik pub/sub elde ediyorsunuz.
Neden önemli, nerede durmalı?
Kafka'yı kendi başına işletmiş herkes bilir: asıl maliyet çoğu zaman lisans ya da sunucu değil, operasyon. Partition dengesi, disk dolması, sürüm yükseltmeleri ve izleme ciddi bir mühendislik zamanı yer. Analitik olayları, audit log'ları veya web kancalarını toplamak için bu yükü taşımak küçük ekipler için genellikle orantısız.
Yine de K2'yi bugün Kafka'nın yerine koymak için erken. Birincisi, 1 saniyelik p99 yazma gecikmesi R2 üzerine kurulan mimarinin doğal sonucu; düşük gecikmeli işlem hatları için uygun değil. İkincisi, mesaj anahtarına göre sıralama, Workers'a push tabanlı tüketim, daha düşük gecikmeli bir "Express" katmanı ve Kafka istemci uyumluluğu henüz yol haritasında. Yani mevcut Kafka kodunuzu bugün olduğu gibi taşıyamazsınız. Cloudflare de K2'yi Queues'un yerine değil, yanına konumluyor: tek tek pahalı işler ve yeniden deneme mantığı için Queues; yüksek hacimli veri taşıma ve fan-out için K2.
Basin: Iceberg üzerine sunucusuz veri platformu
Daha önce "Cloudflare Data Platform" adıyla bilinen ürün ailesi artık Basin adıyla genel kullanıma (GA) açıldı. Üç parçadan oluşuyor:
- Basin Pipelines (eski adıyla Pipelines): Workers, HTTP uç noktaları veya Logpush'tan gelen olayları SQL ile dönüştürüp R2'ye yazıyor. Akış başına 3 GB/s'ye kadar alım kapasitesi duyuruldu.
- Basin Catalog (eski R2 Data Catalog): Apache Iceberg tablolarını yönetiyor; artık tablo bazında compaction politikaları, otomatik snapshot temizliği ve kullanılmayan dosyaların silinmesi gibi bakım işlerini kendisi yapıyor.
- Basin SQL (eski R2 SQL): Bu tablolar üzerinde çalışan sunucusuz SQL motoru. Join'ler, window fonksiyonları, ROLLUP/CUBE ve küme işlemleri gibi önceden eksik olan özellikler eklendi.
Eski isimlerle yapılmış konfigürasyonlar değişiklik gerektirmeden çalışmaya devam ediyor.
Basin'in asıl iddiası teknik değil, ekonomik. Veri açık Iceberg formatında duruyor ve R2'nin çıkış (egress) ücreti olmadığı için aynı tabloları DuckDB, Spark, PyIceberg veya Snowflake ile ek ücret ödemeden okuyabiliyorsunuz. Büyük bulut sağlayıcılarında veri gölünü bir yere kurup başka bir yerden sorgulamak, çıkış ücretleri yüzünden çoğu zaman pahalıya patlıyor. Bu açıdan Basin, "veriyi bir kez yaz, istediğin motorla oku" yaklaşımını gerçekten uygulanabilir kılmaya çalışıyor.
Dikkat edilmesi gereken nokta: özel partition tanımları, şema migrasyonları, Iceberg V3 desteği ve tam DDL hâlâ yol haritasında. Karmaşık bir veri ambarını bugün tamamen Basin'e taşımak yerine, log ve olay analitiği gibi daha sınırlı bir iş yüküyle denemek daha mantıklı görünüyor.
KV Instant: Konfigürasyon için birkaç milisaniyelik okuma
Üçüncü duyuru en küçük ama belki en pratik olanı. Workers KV'nin bilinen zayıflığı, yazılan değerin dünyaya yayılmasının saniyeler sürmesi ve önbellekte olmayan anahtarlarda okumanın yavaşlamasıydı. KV Instant, aynı KV API'sini koruyup altta Cloudflare'in kendi iç konfigürasyon dağıtımında kullandığı Quicksilver'ı kullanıyor.
Cloudflare'in paylaştığı ölçümlere göre p99 okuma gecikmesi 1,62 ms, yazmanın küresel yayılımı ise p99'da 256 ms. Şirket bunu klasik KV'ye göre okumada 100 kat, yayılımda 20 kat iyileşme olarak özetliyor.
Ama sınırlar çok net ve bilerek konmuş:
- Namespace başına toplam en fazla 1 MB veri ve 10.000 anahtar
- Namespace başına saniyede tek yazma
- Okuma milyon istek başına 0,20 dolar (klasik KV'den ucuz), ama yazma işlemi başına 0,10 dolar ve depolama MB başına aylık 100 dolar
- Metadata desteği yok
Bu fiyatlandırma ürünün ne için tasarlandığını açıkça söylüyor: feature flag'ler, bakım modu anahtarları, yönlendirme kuralları veya kill switch'ler gibi her istekte okunan ama nadiren değişen küçük konfigürasyon verisi. Kullanıcı verisi ya da önbellek için kesinlikle uygun değil. Ürün şu an özel beta aşamasında ve namespace oluştururken "mode": "instant" belirtilerek etkinleştiriliyor.
Pratikte ne anlama geliyor?
Bu üç duyuru birlikte okununca Cloudflare'in stratejisi netleşiyor: R2'yi yalnızca ucuz bir S3 alternatifi olarak değil, akış, analitik ve konfigürasyon gibi farklı veri katmanlarının ortak zemini olarak konumlandırıyor. Bir Worker olay üretiyor, K2 veya Pipelines bunu taşıyor, Basin Iceberg tablosuna yazıyor, siz de istediğiniz motorla sorguluyorsunuz. Hepsi sunucu yönetmeden ve çıkış ücreti ödemeden.
Geliştiriciler için önerim şu:
- Zaten Workers kullanıyorsanız, KV Instant'ın beta listesine yazılmak ve feature flag'lerinizi oraya taşımayı denemek düşük riskli bir adım.
- Analitik olaylarınızı bugün üçüncü taraf bir SaaS'a gönderiyorsanız, Basin Pipelines + Basin SQL kombinasyonu maliyet karşılaştırmasına değer; veri sizin R2 bucket'ınızda açık formatta kalıyor.
- K2'yi beta sınırları içinde (10 GB, 1 sn gecikme) yan bir iş yüküyle denemek mantıklı; ama Kafka istemci uyumluluğu ve anahtar bazlı sıralama gelmeden kritik bir sistemi taşımak için acele etmeyin.
Son olarak şunu da not etmek gerek: bu ürünlerin hepsi tek bir sağlayıcıya bağımlılığı artırıyor. Basin'in Iceberg kullanması bu riski veri tarafında azaltıyor, ama K2 ve KV Instant API'leri Cloudflare'e özgü. Karar verirken bu dengeyi göz önünde bulundurmakta fayda var.
Kaynaklar
- Everything we launched during Birthday Week 2026
- Announcing Cloudflare K2: serverless event streams
- Introducing Cloudflare Basin: an open, serverless data platform, now generally available
- Introducing Workers KV Instant — powered by Quicksilver
- Cloudflare makes Basin data platform generally available - ITdaily
- Cloudflare K2 Launches: Serverless Kafka, No Brokers