Haber

Netlify Edge Functions vs Functions: Hangisini Ne Zaman Kullanmalı?

Netlify Edge Functions vs Functions karşılaştırmasının temel farkı yalnız hız değildir. Netlify Functions, Node. js tabanlı serverless runtime’da ve belirlenen Function bölgesinde çalışarak daha geniş backend dependency uyumluluğu sunar.

Netlify Edge Functions vs Functions: Hangisini Ne Zaman Kullanmalı?
Bu yazıda 17 başlık
  1. Öne Çıkanlar
  2. Netlify Functions ve Edge Functions Nedir?
  3. Runtime ve Yürütme Konumu Nasıl Farklıdır?
  4. Desteklenen API ve Dependency Farkları Nelerdir?
  5. Latency Açısından Ne Değişir?
  6. Caching Açısından Functions ve Edge Functions Nasıl Farklıdır?
  7. Aynı Geo Logic Normal Function Olarak Nasıl Yazılır?
  8. Aynı Logic Edge Function Olarak Nasıl Yazılır?
  9. Yerel Test Nasıl Yapılır?
  10. Hangi Kullanım Senaryosunda Hangisi Seçilmeli?
  11. Maliyet ve Limitler Nasıl Değerlendirilir?
  12. Karar Matrisi
  13. Kontrollü Latency ve Uyumluluk Testi
  14. Yaygın Seçim Hataları
  15. Sık Sorulan Sorular
  16. Kaynaklar
  17. Sonuç

Netlify Edge Functions vs Functions karşılaştırmasının temel farkı yalnız hız değildir. Netlify Functions, Node. js tabanlı serverless runtime’da ve belirlenen Function bölgesinde çalışarak daha geniş backend dependency uyumluluğu sunar. Edge Functions ise Deno tabanlı güvenli runtime’da Netlify’nin kullanıcıya yakın network edge konumlarında çalışır; request/response dönüştürme, coğrafi kişiselleştirme, hafif authentication ve routing gibi gecikmeye duyarlı logic için tasarlanmıştır.

Doğru seçim; kodun hangi API’lere ihtiyaç duyduğu, verinin nerede bulunduğu, response’un cache’lenip cache’lenemeyeceği ve işlemin ne kadar ağır olduğuyla yapılmalıdır. Uzak bir veritabanına her istekte giden Edge Function, kullanıcıya yakın başlamasına rağmen normal Function’dan daha hızlı olmayabilir.

Netlify Edge Functions vs Functions: Hangisini Ne Zaman Kullanmalı?

Öne Çıkanlar

  • Netlify Functions Node.js tabanlı serverless compute; Edge Functions Deno tabanlı edge runtime kullanır.
  • Functions, backend kütüphaneleri ve daha ağır server-side işlemler için genellikle daha uyumludur.
  • Edge Functions request’e en yakın Netlify edge konumunda çalışarak hafif request-time logic’i dağıtabilir.
  • İki runtime da Web Request ve Response modeline yaklaşır; platform API’leri ve dependency uyumluluğu aynı değildir.
  • Dynamic Function, Edge Function ve proxy response’ları varsayılan olarak cache’lenmez; cache açıkça yapılandırılmalıdır.
  • Netlify’nin durable cache directive’i 23 Ağustos 2026 itibarıyla normal Functions response’larında desteklenir, Edge Functions response’larında etkili değildir.
  • “Edge her zaman daha hızlıdır” sonucu veri kaynağı, cold/warm durum, cache ve test konumları bilinmeden savunulamaz.
Netlify Edge Functions vs Functions: Hangisini Ne Zaman Kullanmalı?

Netlify Functions ve Edge Functions Nedir?

Netlify Functions, HTTP request veya platform event’ine yanıt veren serverless kod dosyalarıdır. Siteyle birlikte version control’a girer, build edilir ve immutable deploy sürümü olarak yayınlanır. Ödeme webhook’u, veritabanı sorgusu, private API çağrısı, e-posta, ağır dependency veya background iş gibi backend görevlerine uygundur.

Edge Functions da siteyle birlikte sürümlenir; ancak Netlify network edge üzerinde kullanıcıya yakın çalışır. Request’i upstream’e gitmeden önce değiştirebilir, response’u dönüştürebilir veya doğrudan yanıt üretebilir. Yaygın kullanım alanları:

  • Ülke veya dile göre yönlendirme,
  • A/B test cookie’si,
  • Request header ekleme,
  • Hafif access gate,
  • URL rewrite,
  • Edge SSR,
  • Kişiselleştirilmiş ama cache stratejisi belirli content.

Her ikisi de “serverless” olsa da runtime ve execution location kararı uygulama tasarımını değiştirir.

Runtime ve Yürütme Konumu Nasıl Farklıdır?

ÖzellikNetlify FunctionsEdge Functions
Temel runtimeNode.js tabanlı serverlessDeno tabanlı secure edge runtime
Yürütme yeriProjenin Function bölgesiKullanıcıya yakın network edge
Varsayılan dizinnetlify/functionsnetlify/edge-functions
Ana kullanımBackend işlem, veri ve entegrasyonRequest-time routing, kişiselleştirme
Yerel testVite plugin veya Netlify CLINetlify CLI / desteklenen framework entegrasyonu
Kalıcı yerel diskVarsayılmamalıVarsayılmamalı
Deploy modeliSiteyle atomik ve immutableSiteyle atomik ve immutable

Function’ın kullanıcıdan uzak olması her zaman yavaş olacağı anlamına gelmez. Veritabanı Function region’a yakınsa toplam süre daha iyi olabilir. Edge Function kullanıcıya yakın başlar fakat merkezi database’e uzak network round-trip yaparsa avantajını kaybedebilir.

Request path’i birlikte düşünün:

``text Kullanıcı → Edge Function → uzak database → Edge Function → kullanıcı ``

veya:

``text Kullanıcı → Netlify edge → Function region → yakındaki database → kullanıcı ``

Toplam latency, yalnız ilk compute noktasına değil tüm zincire bağlıdır.

Desteklenen API ve Dependency Farkları Nelerdir?

Normal Functions, Node ekosistemine daha doğal uyum sağlar. NPM paketleri, Node built-in modülleri ve server-side SDK’lar için genellikle ilk tercih olabilir. Paket boyutu, native addon ve runtime uyumluluğu yine kontrol edilmelidir.

Edge Functions Web Platform API’leri ve Deno tabanlı runtime’a dayanır. fetch, Request, Response, Web Crypto, URL ve streaming gibi standartlar güçlüdür. Buna karşılık Node’a özgü filesystem, process lifecycle, bazı native package’lar veya C++ addon’lar çalışmayabilir.

Basit taşınabilir logic:

```ts function buildPayload(request: Request) { const url = new URL(request.url);

return { pathname: url. pathname, userAgent: request. headers. get("user-agent") ?? "unknown" }; } ```

Bu tür Web API odaklı yardımcı kod iki runtime arasında daha kolay paylaşılır. Runtime-specific environment variable, geo context veya logging kodunu adapter katmanında tutun.

Dependency seçerken şu soruları sorun:

  1. Paket Node built-in kullanıyor mu? 2. Native binary veya filesystem bekliyor mu? 3. Deno/edge runtime desteği açıkça belirtilmiş mi? 4. Bundle boyutu ve initialization süresi nedir? 5. Paket browser-safe görünse de server secret kullanıyor mu? 6. SDK HTTP/fetch tabanlı alternatif sunuyor mu?

Edge’e geçişi yalnız dosya dizinini değiştirmek gibi ele almayın. Build ve runtime compatibility testi gerekir.

Latency Açısından Ne Değişir?

Edge Functions kullanıcıya yakın çalıştığı için özellikle şu logic türlerinde network yolunu kısaltabilir:

  • Request header okuma ve değiştirme,
  • Cookie tabanlı varyant seçimi,
  • Geo metadata ile locale seçimi,
  • Static asset veya origin arasında rewrite,
  • Cache’lenebilir hafif response üretimi.

Normal Function şu durumlarda daha uygun ve hatta daha hızlı olabilir:

  • Database aynı Function region’da,
  • Ağır Node SDK’sı gerekiyor,
  • İşlem CPU veya dependency initialization içeriyor,
  • Edge’den merkezi servise çok sayıda ardışık çağrı yapılacak,
  • Durable cache’den yararlanılacak.

Latency testinde p50 tek başına yeterli değildir. p95/p99, hata oranı, cold/warm ayrımı, test region’ı, DNS/TLS ve upstream service süresi kaydedilmelidir. Birkaç kişisel laptop isteğiyle platform geneli performans sonucu çıkarılmamalıdır.

Caching Açısından Functions ve Edge Functions Nasıl Farklıdır?

Netlify’nin dynamic response’ları varsayılan olarak cache’lenmez. Bu güvenli varsayımdır; Function veya Edge response deploy olmadan da değişebilir.

Normal Function response’una cache header eklenebilir:

``ts export default async () => { return Response.json( { generatedAt: new Date().toISOString() }, { headers: { "Netlify-CDN-Cache-Control": "public, durable, max-age=60, stale-while-revalidate=120" } } ); }; ``

durable, serverless Function response’unu shared durable cache’e ekleyerek farklı edge node’ların her miss’te Function çalıştırma ihtiyacını azaltabilir. Netlify dokümanı, birden fazla region’da kısa aralıkla yine birden fazla invocation olabileceğini ve tek invocation garantisi vermediğini belirtir.

Edge Functions response’ları da opt-in cache edilebilir; ancak durable directive 23 Ağustos 2026 itibarıyla Edge Functions üzerinde desteklenmez. Edge response cache key’i kişiselleştirmeye göre doğru varyant üretmelidir.

Kullanıcıya özel response’a yanlışlıkla public cache header koymak veri sızıntısı yaratabilir. Authentication cookie’si, user ID veya özel içerik varsa shared cache tasarımını açıkça threat model edin.

Aynı Geo Logic Normal Function Olarak Nasıl Yazılır?

Örnek amacımız gerçek PII toplamadan request context’teki ülke kodunu okuyup JSON dönmek olsun. Normal Function:

```ts import type { Config, Context } from "@netlify/functions";

export default async (_request: Request, context: Context) => { const countryCode = context. geo?. country?. code ?? "unknown";

return Response. json( { runtime: "function", countryCode }, { headers: { "Cache-Control": "no-store" } } ); };

export const config: Config = { path: "/api/geo-function", method: "GET" }; ```

Geo context type ve alan adları kullanılan runtime sürümünde derlenerek doğrulanmalıdır. IP adresini response veya log’a eklemek bu test için gereksizdir.

Aynı Logic Edge Function Olarak Nasıl Yazılır?

netlify/edge-functions/geo-edge. ts:

```ts import type { Config, Context } from "@netlify/edge-functions";

geo?. country?. code ?? "unknown";

return Response. json( { runtime: "edge", countryCode }, { headers: { "Cache-Control": "no-store" } } ); };

export const config: Config = { path: "/api/geo-edge" }; ```

Bu iki endpoint aynı JSON shape’i kullanır. Böylece test yalnız UI farkı değil runtime path’i üzerinden yapılabilir. Kod örnekleri bu taslak hazırlanırken çalıştırılmadı; güncel package type’ları ve context alanları yayın öncesinde doğrulanmalıdır.

Yerel Test Nasıl Yapılır?

Netlify CLI:

``bash npm install -g netlify-cli netlify link netlify dev --geo=mock --country=TR ``

Ardından:

``bash curl -i http://localhost:8888/api/geo-function curl -i http://localhost:8888/api/geo-edge ``

Mock geo, production latency kanıtı değildir. Yalnız logic ve response schema’yı test eder. Gerçek production’da farklı lokasyonlardan yapılan isteklerin edge ve Function logları incelenmelidir.

Local testte şunlar karşılaştırılabilir:

  • Status code,
  • content-type,
  • JSON schema,
  • Missing geo fallback,
  • Environment variable erişimi,
  • Dependency import sonucu,
  • Error handling.

Hangi Kullanım Senaryosunda Hangisi Seçilmeli?

Edge Functions için güçlü adaylar

  • Geo veya dil bazlı hafif locale seçimi,
  • Cookie tabanlı A/B varyantı,
  • Request/response header transform,
  • Authentication token’ın hafif ön kontrolü,
  • Origin rewrite veya proxy seçim kararı,
  • Edge’e uygun framework middleware’i,
  • Cache key’i açık biçimde tasarlanmış kişiselleştirme.

Normal Functions için güçlü adaylar

  • Postgres veya başka database sorgusu,
  • Ödeme ve webhook işlemi,
  • E-posta gönderimi,
  • Ağır Node SDK veya native uyumluluk ihtiyacı,
  • Dosya/object storage işlemi,
  • AI model orchestration,
  • Private API integration,
  • Background veya scheduled iş.

İki katmanı birlikte kullanmak

Edge Function request’i sınıflandırabilir; ağır iş gerektiğinde normal Function’a yönlendirebilir. Ancak gereksiz iki hop latency ve debugging yükü yaratır. Her katmanın açık görevi olmalıdır.

Örnek:

``text Edge: locale/cookie seçimi ↓ Static cache hit varsa yanıt ↓ miss Function: database sorgusu ve server logic ``

Maliyet ve Limitler Nasıl Değerlendirilir?

Kredi tabanlı Netlify planlarında compute ortak kredi havuzunu etkileyebilir. Gerçek maliyet için invocation süresi, ayrılan memory, traffic, cache hit oranı ve dış servis kullanımı birlikte ölçülmelidir.

Maliyet düşürme kararları:

  • Static üretilebilen içeriği dynamic yapmamak,
  • Cache’lenebilir Function response’unda uygun edge/durable cache,
  • Gereksiz her-request database çağrısını kaldırmak,
  • Edge’de ağır dependency kullanmamak,
  • Bot ve abuse trafiğini sınırlamak,
  • Preview environment’ında yüksek maliyetli servisleri sandbox/rate limit ile korumak.

Limitler runtime’a göre farklıdır ve zaman içinde değişebilir. Execution time, memory, request/response boyutu, environment variable, log retention ve package uyumluluğu yayın tarihinde resmî Functions ve Edge Functions limits sayfalarından kontrol edilmelidir.

Karar Matrisi

GereksinimTercihNeden
Header veya cookie’ye göre rewriteEdge FunctionRequest’e yakın, hafif logic
Postgres sorgusuFunctionNode/serverless veri erişimi
Ülkeye göre static varyantEdge + cacheGeo ve cache key tasarımı
Ödeme webhook’uFunctionİmza, idempotency, server SDK
Ağır Node paketiFunctionDaha geniş Node uyumluluğu
A/B test cookie atamaEdge FunctionRequest-time response transform
Uzun batch işİkisi de doğrudan uygun olmayabilirBackground/async worker gerekir
Kullanıcıya özel dashboardFramework/Function; dikkatli cacheVeri ve auth merkezi olabilir
Basit API key proxyFunctionSecret ve rate limit server-side
Redirect kurallarıÖnce static redirectsCompute gerektirmeyebilir

Compute eklemeden önce Netlify redirects, static build veya client-side fetch ile sorun çözülebiliyor mu bakın. En hızlı Function, hiç çalışması gerekmeyen Function olabilir.

Kontrollü Latency ve Uyumluluk Testi

Zorunlu test için aynı response schema ve aynı minimum logic iki runtime’da deploy edilmelidir. En az üç farklı istemci konumu ve yeterli örneklem kullanılabilir.

KonumRuntimeİstekBaşarı oranıp50p95CacheNot
İstanbulFunctionÖlçülmediÖlçülmediÖlçülmediÖlçülmedino-store
İstanbulEdgeÖlçülmediÖlçülmediÖlçülmediÖlçülmedino-store
FrankfurtFunctionÖlçülmediÖlçülmediÖlçülmediÖlçülmedino-store
FrankfurtEdgeÖlçülmediÖlçülmediÖlçülmediÖlçülmedino-store
New YorkFunctionÖlçülmediÖlçülmediÖlçülmediÖlçülmedino-store
New YorkEdgeÖlçülmediÖlçülmediÖlçülmediÖlçülmedino-store

Dependency uyumluluk testi de eklenmelidir:

ÖzellikFunctionEdge
Web fetchTest edilecekTest edilecek
Web CryptoTest edilecekTest edilecek
Node filesystemTest edilecekUygunluğu kontrol edilecek
Seçilen NPM SDKTest edilecekTest edilecek
Environment variableTest edilecekTest edilecek
Geo contextTest edilecekTest edilecek

> Editör notu — zorunlu özgün kanıt: Bu taslak için iki endpoint deploy edilmedi ve çok konumlu latency ölçümü yapılmadı. Yayından önce aynı commit, response body, cache policy ve dış servis olmadan test edilmeli; tarih, istemci bölgesi, network, sample size, cold/warm koşul, Function region, CLI/runtime sürümü ve raw sonuçlar kaydedilmelidir. Az sayıda lokasyondan evrensel hız sonucu çıkarılmamalıdır.

> Görsel notu: Kullanıcı → edge → Function region → database akışlarını karşılaştıran iki yol diyagramı, runtime feature matrix ve p50/p95 grafiği hazırlanmalıdır.

> İç link editör notu: Netlify Functions, CDN cache ve redirects rehberleri yayımlandığında ilgili karar noktalarına doğal bağlantı eklenmelidir.

Yaygın Seçim Hataları

“Edge her zaman daha hızlıdır”

Edge başlangıç noktası kullanıcıya yakındır; uzak database veya API çağrısı toplam süreyi uzatabilir. End-to-end ölçün.

Node paketini Edge’e aynen taşımak

Deno/Web runtime uyumluluğu olmayabilir. Paket dokümanı, bundle ve gerçek deploy testi gerekir.

Kullanıcıya özel response’u public cache etmek

Cache key auth/user boyutunu içermiyorsa veri başka kullanıcıya sunulabilir. Private/no-store veya doğru vary tasarlayın.

Basit redirect için compute kullanmak

Statik _redirects veya netlify. toml kuralı daha basit ve ucuz olabilir.

Function’a geo logic koymanın yanlış olduğunu varsaymak

Normal Function context de geo bilgisi sağlayabilir. Edge seçiminin nedeni yalnız property’ye erişmek değil, request path ve operasyonel uygunluk olmalıdır.

Tek curl süresini benchmark saymak

DNS, TLS, connection reuse ve cache sonucu etkiler. Birden fazla istek, konum ve percentile gerekir.

Sık Sorulan Sorular

Netlify Edge Functions hangi runtime’ı kullanır?

Netlify, güvenli Deno tabanlı runtime’ı worldwide network edge üzerinde çalıştırdığını belirtir.

Netlify Functions Node.js mi kullanır?

Evet, modern serverless Functions Node tabanlı runtime ve Web Request/Response API’siyle çalışır. Güncel Node sürümü proje ayarından doğrulanmalıdır.

Edge Function response’u cache edilir mi?

Varsayılan olarak edilmez; opt-in cache yapılandırması gerekir. Kişiselleştirilmiş content’te cache key ve veri güvenliği dikkatle tasarlanmalıdır.

Durable cache Edge Functions’ta çalışır mı?

23 Ağustos 2026 tarihli Netlify caching dokümanına göre durable directive normal Functions response’larıyla uyumludur; Edge Functions response’larında etkili değildir.

Database sorgusunu Edge Function’da yapabilir miyim?

Teknik olarak sağlayıcının edge uyumlu HTTP driver’ıyla mümkün olabilir; fakat veri kaynağının konumu, bağlantı modeli, SDK uyumluluğu ve latency gerçek testle değerlendirilmelidir. Çoğu klasik Node/database akışında normal Function daha doğal başlangıçtır.

Kaynaklar

Sonuç

Netlify Edge Functions vs Functions kararında tek ölçüt kullanıcıya fiziksel yakınlık değildir. Hafif routing, header, geo ve cookie logic’i için Edge Functions; database, private API, ödeme, ağır Node dependency ve backend işlemleri için normal Functions daha güçlü başlangıçtır. Veri kaynağının konumunu, runtime uyumluluğunu, cache stratejisini ve toplam request zincirini birlikte değerlendirin. Aynı logic’i iki runtime’da kontrollü biçimde ölçmeden mutlak hız sonucu vermeyin.

Functions ve Edge Functions seçeneklerini aynı projede karşılaştırmak için [ücretsiz Netlify hesabı oluşturabilirsiniz](https://join. netlify. com/wmkqymu1heo2). Bu bir iş ortaklığı bağlantısıdır; bağlantı üzerinden kayıt olmanız veya ücretli plana geçmeniz halinde Ortak Alan komisyon kazanabilir.

Yazar

Keşfet
  1. HaberLes Misérables Hudson Valley’de: Barikatlar Nehri AşıyorBora Gökçe ·
  2. KültürAI İçin Sanat Eserlerini Kazıyan Kişi, Artık Yaratıcılarla İşbirliği YapıyorBora Gökçe ·
  3. HaberBLS Verilerindeki Küçük Düzeltme Daha Güvenilir İstihdam Rakamlarını GösteriyorBora Gökçe ·

Ücretsiz üyelik

Ortak Alan’a katıl.

Kısa bir kayıt. Ardından Ghost sana e-posta doğrulama bağlantısı gönderecek.

Tamamdır. Devam etmek için e-postandaki bağlantıyı kontrol et.

Zaten üye misin?Giriş yap