Veri Sözleşmeleri Nedir? Hızlı Yanıt
Veri sözleşmeleri (data contracts), veri üreten (producer) ile veri tüketen (consumer) ekipler arasında, bir veri kümesinin şemasını, anlamını, kalite garantilerini ve hizmet düzeyini (SLA) açıkça tanımlayan, makine tarafından doğrulanabilir resmi anlaşmalardır. 2026 yılında, veri ürünleri (data products) ve veri ağı (data mesh) yaklaşımının yaygınlaşmasıyla, veri sözleşmeleri “sessiz şema kırılmaları” (silent schema breakage) sorununu çözen merkezi bir uygulama haline geldi. Kısaca: bir kaynak ekibi bir sütunu habersiz silip aşağı akıştaki tüm raporları bozduğunda yaşanan kâbusu önlerler.
Sektör araştırmaları, veri profesyonellerinin önemli bir bölümünün zamanını veri kalitesi sorunlarıyla uğraşarak geçirdiğini ve kötü veri kalitesinin organizasyonlara yıllık ciddi maliyetler yüklediğini ortaya koyuyor. Veri sözleşmeleri, bu maliyetin büyük kısmını oluşturan kaynaktan gelen beklenmedik değişiklikleri “kayma yaşanmadan” yakalar. Bu yazıda veri sözleşmesinin bileşenlerini, şema yönetimini, uygulama (enforcement) mimarisini ve 2026 araç ekosistemini somut örneklerle ele alıyorum. Veri sözleşmeleri, daha geniş bir veri kalitesi yönetimi stratejisinin temel taşıdır.

Veri Sözleşmesi Neden Gerekli?
Modern veri mimarilerinde tek bir kaynak veri kümesi onlarca aşağı akış (downstream) sistemi besler: dbt modelleri, BI panoları, makine öğrenmesi modelleri, başka servisler. Kaynak ekip, bu tüketicilerin varlığından genellikle habersizdir. Bir mühendis bir sütunu yeniden adlandırdığında veya tipini değiştirdiğinde, hata anında görünmez; günler sonra bir rapor sessizce yanlış sayılar göstermeye başlar. Buna “sessiz şema kırılması” denir ve bulunması en pahalı veri sorunlarından biridir.
Veri sözleşmeleri bu sorunu üç şekilde çözer:
- Açık beklenti: Kaynak ekip, ürettiği verinin şemasını ve garantilerini resmen taahhüt eder; tüketici neye güvenebileceğini bilir.
- Erken yakalama: Sözleşmeyi ihlal eden bir değişiklik, üretime ulaşmadan CI/CD aşamasında veya yayın anında engellenir (shift-left).
- Sahiplik ve sorumluluk: Sözleşme, verinin sahibini, SLA’sını ve değişiklik sürecini netleştirir; “bu verinin sahibi kim?” sorusu ortadan kalkar.
Veri ağı (data mesh) felsefesinde her veri ürünü, açık bir sözleşmeyle yayınlanır. Bu, merkezi bir veri ekibinin darboğaz olmasını engeller ve ölçeklenebilir, federe (federated) bir yönetişim sağlar. Açık standartlar ve şartname için Data Contract Specification başvuru kaynağıdır.
Sessiz şema kırılmasının neden bu kadar pahalı olduğunu bir örnek netleştirir. Bir kaynak ekip, kullanıcı tablosundaki “gelir” sütununu performans gerekçesiyle string’den integer’a çevirir ve bu değişikliğin masum olduğunu düşünür. Ancak aşağı akışta bu sütunu okuyan bir dbt modeli sessizce yanlış sonuç üretmeye başlar, o modelden beslenen üç BI panosu hatalı sayılar gösterir ve bu panolara bakan iş ekipleri günler boyunca yanlış kararlar verir. Hata bir patlamayla değil, sessiz bir kaymayla yayılır; çünkü hiçbir sistem istisna fırlatmaz, yalnızca sayılar yanlışlaşır. Bu tür hataların maliyetinin yüksek olmasının nedeni, keşif anının çok geç olmasıdır: sorun, üreten ekipten haftalar sonra, en pahalı noktada (iş kararı) fark edilir. Veri sözleşmeleri bu zincirin ilk halkasını kırar; sütun tipi değişikliği, sözleşmeyle çeliştiği an, daha üretime ulaşmadan engellenir.
Veri sözleşmelerinin asıl gücü, sorumluluğu kaynağa kaydırmasıdır. Geleneksel modelde aşağı akış ekipleri, kaynak verinin her kaprisine karşı savunmacı kod yazar: null kontrolleri, tip dönüşümleri, beklenmedik değer temizlikleri. Bu savunmacı kod hem dağınıktır hem de gerçek sorunu çözmez, yalnızca semptomu örter. Sözleşme yaklaşımında ise garanti kaynakta verilir; üretici ekip, ürettiği verinin sözleşmeye uygunluğundan sorumlu olur. Bu, “kırık veriyi tüketicinin temizlemesi” anti-deseninden, “doğru veriyi üreticinin taahhüt etmesi” disiplinine geçiştir ve organizasyon genelinde veri güvenini kökten artırır.
Bir Veri Sözleşmesinin Bileşenleri
Olgun bir veri sözleşmesi yalnızca bir şema dosyası değildir; verinin tüm yaşam döngüsünü kapsayan zengin bir tanımdır. Aşağıdaki tablo temel bileşenleri ve işlevlerini özetler:
| Bileşen | Tanım | Örnek |
|---|---|---|
| Şema | Alanlar, tipler, zorunluluk | musteri_id: string, not null |
| Anlamsal tanım | Her alanın iş anlamı | gelir: KDV hariç net tutar |
| Kalite kuralları | Doğrulanabilir kısıtlar | gelir >= 0, e-posta benzersiz |
| SLA | Tazelik, kullanılabilirlik | günde 1 kez, 06:00 öncesi |
| Sahiplik | Sorumlu ekip/kişi | satis-veri-ekibi |
| Sürümleme | Değişiklik politikası | semantik sürüm, geriye uyum |
Bu bileşenler genellikle YAML veya JSON gibi makine okunabilir bir formatta tanımlanır. Açık standartlar olarak Open Data Contract Standard (ODCS) ve Data Contract Specification öne çıkar; bu standartlar sözleşmeleri taşınabilir ve araçlar arası uyumlu kılar. Sözleşme bir kez tanımlandığında, hem dokümantasyon hem otomatik doğrulama kaynağı olarak hizmet eder.

Şema Yönetimi ve Sürümleme
Veri sözleşmelerinin kalbi şema yönetimidir. Şemalar zamanla değişir; önemli olan bu değişimleri kontrollü, geriye uyumlu (backward compatible) şekilde yapmaktır. Şema değişiklikleri üç kategoriye ayrılır:
- Uyumlu (compatible) değişiklikler: Yeni isteğe bağlı alan ekleme, açıklama güncelleme. Tüketicileri bozmaz; serbestçe yapılabilir.
- Kıran (breaking) değişiklikler: Alan silme, yeniden adlandırma, tip değiştirme, zorunluluk ekleme. Tüketicileri bozar; sürüm yükseltme ve koordinasyon gerektirir.
- Geçiş (deprecation) süreci: Eski alanı hemen silmek yerine “kullanımdan kaldırıldı” işaretleyip belli bir süre paralel sunmak.
Olgun ekipler, şema kayıt defteri (schema registry) kullanır; bu sistem her şema sürümünü saklar ve yeni bir sürümün eskisiyle uyumlu olup olmadığını otomatik kontrol eder. Apache Kafka ekosisteminde Confluent Schema Registry, Avro/Protobuf/JSON Schema ile uyumluluk denetimi yapar; ayrıntılar için Confluent Schema Registry dokümantasyonu başvuru kaynağıdır. Toplu (batch) dünyada ise sözleşmeler genellikle Git’te yaşar ve CI/CD’de doğrulanır.
Uyumluluk modlarının doğru seçimi, şema evriminin kalbidir ve sıkça yanlış anlaşılır. Geriye uyumluluk (backward), yeni şemanın eski veriyi okuyabilmesi demektir; bu, tüketicilerin üreticiden önce güncellenebildiği durumlar için doğru moddur ve en yaygın seçimdir, çünkü çoğu organizasyonda tüketiciler üreticiyle aynı anda dağıtılmaz. İleriye uyumluluk (forward) ise eski şemanın yeni veriyi okuyabilmesidir; bu, üreticinin tüketicilerden önce güncellendiği senaryolar için gereklidir. Tam uyumluluk (full) ikisini birden garanti eder ama yalnızca opsiyonel alan ekleme/silmeye izin vererek esnekliği daraltır. Pratikte ekiplerin en sık yaptığı hata, uyumluluk modunu “None” bırakıp her değişikliğe izin vermek ve sonra üretimde kırılmalarla yüzleşmektir. Doğru disiplin, varsayılan olarak geriye uyumluluğu zorlamak ve kıran bir değişiklik gerçekten gerektiğinde bunu yeni bir ana sürümle (major version) ve koordineli bir geçiş planıyla yapmaktır. Schema registry, bu kuralı otomatik denetleyerek insan hatasını ortadan kaldırır: uyumsuz bir şema yayınlanmaya çalışıldığında doğrudan reddedilir.
| Uyumluluk modu | İzin verilen | Kullanım |
|---|---|---|
| Backward | Alan silme, opsiyonel ekleme | Yeni şema eski veriyi okur |
| Forward | Alan ekleme, opsiyonel silme | Eski şema yeni veriyi okur |
| Full | Sadece opsiyonel ekle/sil | İki yönlü güvenli |
| Backward Transitive | Tüm önceki sürümlerle uyum | Geçmiş veriyi de okur |
| None | Her değişiklik | Uyumluluk kontrolü yok |
Uygulama (Enforcement): Sözleşmeyi Hayata Geçirmek
Bir sözleşme yalnızca uygulandığında (enforce) değer üretir; doküman olarak kalan sözleşme işe yaramaz. Enforcement iki ana noktada gerçekleşir:
- Üretici tarafı (shift-left): Kaynak ekip değişiklik yaptığında, CI/CD pipeline’ı yeni şemayı sözleşmeye karşı doğrular. Kıran bir değişiklik onaysız geçemez. Bu, sorunu üretime ulaşmadan yakalar ve en ucuz çözümdür.
- Çalışma zamanı (runtime): Veri akışta veya yüklemede sözleşmeye göre denetlenir. Kalite kuralını ihlal eden veri karantinaya alınır, uyarı üretilir veya pipeline durdurulur.
2026 araç ekosistemi bu enforcement’ı kolaylaştırır. Great Expectations ve Soda kalite kurallarını doğrular; dbt contracts model çıktısının sütun tiplerini garanti eder; Monte Carlo ve benzeri veri gözlemlenebilirlik (data observability) araçları anomalileri ve şema kaymalarını otomatik tespit eder. Akış tarafında schema registry, uyumsuz mesajları reddeder. Kalite doğrulama yaklaşımı için Great Expectations kapsamlı bir referanstır.
Enforcement’ı tasarlarken kritik bir denge gözetilir: çok katı bir uygulama üretimi durdurarak iş kesintisine yol açabilir, çok gevşek bir uygulama ise kötü veriyi içeri sızdırır. Olgun ekipler bu yüzden katmanlı bir yanıt stratejisi benimser. Düşük önem dereceli ihlaller yalnızca uyarı üretir ve veri akmaya devam eder; orta dereceli ihlaller veriyi karantinaya alır ve manuel inceleme bekler; kritik ihlaller (örneğin birincil anahtar bütünlüğü) ise pipeline’ı tamamen durdurur. Bu derecelendirme, hem veri güvenilirliğini korur hem de gereksiz iş kesintilerini önler. Sözleşme yaklaşımını data mesh mimarisiyle birleştirmek, federe yönetişimi ölçeklenebilir kılar.
| Araç/Yaklaşım | Odak | Enforcement noktası |
|---|---|---|
| Schema Registry | Şema uyumluluğu | Akış (yayın anı) |
| dbt contracts | Model çıktı sözleşmesi | Dönüşüm (build) |
| Great Expectations / Soda | Kalite kuralları | Pipeline/runtime |
| Data observability | Anomali, kayma tespiti | Runtime izleme |
| CI/CD doğrulama | Kıran değişiklik engeli | Üretici (shift-left) |

Veri Sözleşmeleri ve Veri Kalitesi İlişkisi
Veri sözleşmeleri, veri kalitesi yönetiminin reaktif değil proaktif olmasını sağlar. Geleneksel yaklaşımda kalite sorunu aşağı akışta, genellikle bir iş kullanıcısı yanlış sayı fark ettiğinde keşfedilir; bu en pahalı keşif anıdır. Sözleşmeler, sorunu kaynağa yakın yakalayarak “düzeltme maliyeti katlanarak artar” eğrisini kırar.
Bu maliyet eğrisi, yazılım mühendisliğindeki “hata ne kadar geç bulunursa düzeltmesi o kadar pahalı” prensibinin veri dünyasındaki karşılığıdır. Kaynakta yakalanan bir şema ihlali, birkaç dakikalık bir CI/CD geri bildirimiyle çözülür. Aynı ihlal üretime sızdığında, önce yanlış raporları fark etmek, sonra kök nedeni bulmak, ardından bozulmuş aşağı akış verisini geri doldurmak (backfill) ve son olarak yanlış kararları telafi etmek gerekir; bu zincir günlerce mühendis emeği ve potansiyel iş kaybı anlamına gelir. Veri sözleşmeleri tam da bu zinciri en başında kırarak hem doğrudan emek maliyetini hem de veriye duyulan güvenin erozyonunu önler.
Kalite boyutlarını sözleşmeye gömmek için şu prensipler izlenir:
- Bütünlük (completeness): Zorunlu alanların doluluğu garanti altına alınır.
- Doğruluk (accuracy): Değer aralıkları ve formatlar (e-posta, tarih) doğrulanır.
- Tutarlılık (consistency): İlişkisel bütünlük ve referans değerleri kontrol edilir.
- Tazelik (timeliness): SLA ile verinin ne zaman güncel olacağı taahhüt edilir.
- Benzersizlik (uniqueness): Anahtar alanların tekilliği zorlanır.
Bu boyutlar sözleşmede deklaratif tanımlandığında, veri kalitesi soyut bir hedef olmaktan çıkıp otomatik denetlenen, ölçülebilir bir taahhüde dönüşür. Aşağıdaki tablo, her kalite boyutunu somut bir kurala ve hangi araçla denetlendiğine bağlar:
| Kalite boyutu | Sözleşme kuralı | İhlal sonucu | Denetim aracı |
|---|---|---|---|
| Bütünlük | not_null zorunlu alanlar | Karantina / uyarı | dbt test, GE |
| Doğruluk | Değer aralığı, format | Reddetme | Great Expectations |
| Tutarlılık | Yabancı anahtar bütünlüğü | Uyarı | dbt relationships |
| Tazelik | SLA penceresi (saat) | SLA ihlali alarmı | source freshness |
| Benzersizlik | Anahtar tekilliği | Reddetme | unique test |
| Şema uyumu | Tip ve alan eşleşmesi | Yayın engeli | Schema registry |

Bu denetimleri otomatikleştirmek, veri kalitesini sürekli izlenen bir sinyale dönüştürür ve sorunları kullanıcı fark etmeden yakalar. Olgun ekipler bu sinyalleri bir veri gözlemlenebilirliği platformuyla birleştirerek anomalileri proaktif tespit eder.
Veri Ağı ve Sözleşmelerin Organizasyonel Rolü
Veri sözleşmeleri teknik bir araç gibi görünse de asıl değeri organizasyonel bir dönüşümü mümkün kılmasındadır. Geleneksel merkezi veri mimarilerinde, tüm veriyi tek bir merkezi ekip toplar, temizler ve yayınlar; bu ekip kaçınılmaz olarak bir darboğaza dönüşür çünkü her yeni veri ihtiyacı onların kuyruğuna girer ve her kaynak sistem değişikliği onların müdahalesini bekler. Veri ağı (data mesh) yaklaşımı bu modeli tersine çevirir: veriyi en iyi bilen alan ekipleri (domain teams), kendi verilerini bir “veri ürünü” olarak sahiplenir ve yayınlar. Ancak bu dağıtık model, ortak bir disiplin olmadan kaosa dönüşür; her ekibin kendi formatında, kendi garantileriyle veri yayınlaması tüketiciler için yeni bir kâbus yaratır.
İşte veri sözleşmeleri tam bu boşluğu doldurur: federe (federated) yönetişimin ortak dilidir. Her veri ürünü, standart bir sözleşmeyle yayınlandığında, tüketiciler merkezi bir ekibe sormadan o ürüne nasıl güveneceklerini bilir. Sözleşme, sahipliği netleştirir (“bu verinin sahibi satış-veri-ekibi”), SLA’yı taahhüt eder ve değişiklik sürecini kodlar. Bu, merkezi kontrolün esnekliğini kaybetmeden dağıtık ölçeklenebilirliği elde etmenin yoludur; merkezi platform ekibi artık her veriyi elle yönetmek yerine, sözleşme standardını ve doğrulama altyapısını sağlayan bir kolaylaştırıcıya dönüşür. Bu nedenle veri sözleşmelerini benimsemek, yalnızca bir araç kurmak değil, veri sorumluluğunu organizasyon genelinde yeniden dağıtmaktır; teknik başarı, bu kültürel değişim olmadan kalıcı olmaz.
Tipik Sorunlar ve Çözümleri
Veri sözleşmesi benimseyen ekiplerin en sık karşılaştığı sorunlar aşırı katı tasarım, enforcement eksikliği ve kültürel direnişten kaynaklanır. Aşağıdaki maddeler kritik tuzakları ve çözümlerini sıralar:
- Doküman olarak kalan sözleşme: Tanımlanır ama uygulanmaz, kimse uymaz. Çözüm: CI/CD ve runtime enforcement’ı ilk günden bağla.
- Aşırı katılık: Her küçük değişiklik bloklanır, ekip yavaşlar. Çözüm: uyumlu/kıran ayrımını netleştir, uyumlu değişikliklere serbestlik tanı.
- Sahiplik belirsizliği: Sözleşmenin sorumlusu yoktur, eskir. Çözüm: her sözleşmeye net sahip ekip ata.
- Geriye uyum kazaları: Kıran değişiklik habersiz yayınlanır. Çözüm: schema registry ile otomatik uyumluluk denetimi.
- Kültürel direniş: Üretici ekip ekstra yük görür. Çözüm: değeri kanıtla, en kritik 2-3 veri ürününden başla, kademeli yay.
- Geçiş yönetimi eksik: Eski alan aniden silinir. Çözüm: deprecation süreci ve paralel sunma penceresi tanımla.
Sonuç
Veri sözleşmeleri, 2026’da veri ürünleri ve veri ağı dünyasının temel yönetişim aracı olarak, üretici ve tüketici ekipler arasında açık, makine doğrulanabilir taahhütler kurar. Sessiz şema kırılmalarını kaynağa yakın yakalayarak veri kalitesini reaktif bir itfaiyecilikten proaktif bir mühendislik disiplinine dönüştürürler. Başarının anahtarı, sözleşmeyi yalnızca dokümante etmek değil, hem üretici tarafında CI/CD ile (shift-left) hem çalışma zamanında uygulamaktır. Şema yönetiminde uyumlu ve kıran değişiklik ayrımını netleştirmek, schema registry ile otomatik denetim kurmak ve net sahiplik atamak kritik adımlardır. En değerli, en kırılgan birkaç veri ürününden başlayıp kademeli yaymak, hem kültürel direnci aşmanın hem değeri hızla kanıtlamanın en sağlam yoludur.
Sıkça Sorulan Sorular
Veri sözleşmesi tam olarak nedir?
Veri sözleşmesi, veri üreten ile veri tüketen ekipler arasında bir veri kümesinin şemasını, alan anlamlarını, kalite kurallarını, SLA’sını ve sahipliğini açıkça tanımlayan, makine tarafından doğrulanabilir resmi bir anlaşmadır. Genellikle YAML veya JSON formatında yazılır ve hem dokümantasyon hem otomatik doğrulama kaynağı olarak hizmet eder; böylece beklenmedik şema değişikliklerinin aşağı akış sistemleri bozması önlenir.
Veri sözleşmeleri sessiz şema kırılmasını nasıl önler?
Kaynak ekip bir sütunu sildiğinde veya tipini değiştirdiğinde, bu kıran değişiklik sözleşmeyle çelişir. CI/CD pipeline’ı bu değişikliği üretime ulaşmadan engeller (shift-left) ya da çalışma zamanında schema registry uyumsuz veriyi reddeder. Böylece günler sonra raporda fark edilen sessiz hata yerine, sorun kaynağa yakın ve en ucuz noktada yakalanır.
Veri sözleşmesi ile şema kayıt defteri (schema registry) aynı şey mi?
Hayır, ancak ilişkilidirler. Şema kayıt defteri özellikle akış (streaming) sistemlerinde şema sürümlerini saklayan ve uyumluluğu denetleyen bir bileşendir. Veri sözleşmesi ise daha geniştir; şemanın yanı sıra anlamsal tanımlar, kalite kuralları, SLA ve sahipliği de kapsar. Schema registry, bir sözleşmenin şema uygulama mekanizmalarından biridir.
Veri sözleşmelerini hangi araçlarla uygularım?
Akış tarafında Confluent Schema Registry uyumsuz mesajları reddeder. Dönüşüm katmanında dbt contracts model çıktı tiplerini garanti eder. Pipeline ve çalışma zamanında Great Expectations veya Soda kalite kurallarını doğrular, Monte Carlo gibi veri gözlemlenebilirlik araçları anomali ve şema kaymalarını tespit eder. Üretici tarafında ise CI/CD pipeline’ı kıran değişiklikleri engeller.
Veri sözleşmelerine nereden başlamalıyım?
En kritik ve en çok aşağı akış tüketicisi olan iki üç veri ürününden başlayın. Bunlar için sözleşme tanımlayıp CI/CD ve runtime enforcement’ı bağlayın, değeri somut olarak kanıtlayın. Kültürel direnci aşmanın en etkili yolu, sessiz kırılmaların yarattığı maliyeti önlediğinizi gösterip kademeli yaymaktır; tüm organizasyona aynı anda dayatmak başarısız olur.










Ömer ÖNAL
Haziran 10, 2026Ekiplere şunu söylüyorum: veri sözleşmesini önce doküman olarak görmeyin, çünkü uygulanmayan sözleşme sadece güzel bir YAML dosyasıdır. Değer enforcement’tan gelir; CI/CD’de kıran değişikliği bloklayan o tek satır, günler sonra raporu bozan sessiz hatadan çok daha ucuzdur. İkinci tavsiyem: tüm organizasyona aynı anda dayatmayın. En kırılgan iki üç veri ürününden başlayın, sessiz kırılmanın maliyetini önlediğinizi gösterin, sonra kademeli yayın.