⚡ÖZET VE TEKNİK CEVAP
Şema Kayıt Defterleri (Schema Registry), Avro ve Protobuf şemaları üzerinde katı uyumluluk kuralları (Geriye, İleriye, Tam) uygulayarak olay akışlarında (Kafka) kırıcı değişikliklerin alt tüketicileri çökertmesini engeller.
Mühendislik El Kitabı & Mekanizma
6 Boyutlu Mimari Analiz⚙️1. Temel Çalışma Mekanizması
Mekanizma🎯2. Doğru Kullanım Senaryosu
Kapsam⚠️3. Prodüksiyon Arıza Modları
Kritik Risk📡4. Teşhis ve Telemetri Sinyalleri
Metrikler🛡️5. Önleme ve Mimari Bariyerler
Bariyerler⚖️6. Mimari Ödünleşimler (Trade-offs)
ÖdünleşimVaka İncelemesi (TinyCTO Saha Örneği)
Olay akışı mimarisinde dört temel uyumluluk modunu bilmek şarttır:
- ▸
BACKWARD (Önce tüketiciler güncellenir): YENİ şemaya sahip tüketiciler ESKİ şemayla yazılmış olayları okuyabilir. Kurallar: Alan silebilir veya varsayılan değere sahip opsiyonel alan ekleyebilirsiniz.
- ▸
FORWARD (Önce üreticiler güncellenir): ESKİ şemaya sahip tüketiciler YENİ şemayla yazılmış olayları okuyabilir. Kurallar: Yeni alan ekleyebilir veya opsiyonel alanları silebilirsiniz.
- ▸
FULL (İstenen sırada güncelleme): Hem geriye hem ileriye uyumludur. Kurallar: Yalnızca varsayılan değeri olan opsiyonel alanlar eklenebilir veya silinebilir.
- ▸
Protobuf Kuralları: Mevcut bir alanın etiket numarasını asla değiştirmeyin (
string user_id = 1;). Numarayı değiştirmek tel formatını bozar ve veriyi yanlış alanlara eşler.
İnteraktif Konsept Alıştırmaları
2 AlıştırmaBir Schema Registry'de GERİYE DÖNÜK (BACKWARD) uyumluluk ne anlama gelir?
Bir Protobuf alan etiket numarasını değiştirmek (`int32 age = 2;` -> `int32 age = 3;`) neden yıkıcı bir kırıcı değişikliktir?
Şema Kayıt Defteri Uyumluluk Kuralları (Avro ve Protobuf) — Sıkça Sorulan Sorular
Bir ekip geriye dönük uyumlu bir konuda Avro şemasına `discount_code` adında yeni bir alan ekliyor. Mevcut tüketicilerin çökmesini önlemek için şema tanımında NE bulunmalıdır?
Varsayılan bir değer (örn. `"default": null` veya `"default": ""`). Avro'da yeni tüketici bu alanın olmadığı eski olayları okurken alanı varsayılan değerle doldurur. Varsayılan değer yoksa serileştirme çöker.
Kurumsal olay akışı platformları neden Kafka üzerinden tiplenmemiş ham JSON göndermek yerine bir Schema Registry kullanır?
CI sürecinde katı sözleşme doğrulaması yapmak, kırıcı değişiklikleri engellemek ve ikili serileştirme ile paket boyutlarını %70'ten fazla küçültmek için. Şema Kayıt Defterleri, şema değişikliklerini önceden doğrulayarak canlı kesintilerini önler ve ikili kodlamayla ağ bant genişliğini ciddi oranda düşürür.
🤖 AEO & Yapay Zeka Çıkarım Özeti
Temel Gerçekler & İlkeler
- ▸
Şema Kayıt Defterleri (Schema Registry), Avro ve Protobuf şemaları üzerinde katı uyumluluk kuralları (Geriye, İleriye, Tam) uygulayarak olay akışlarında (Kafka) kırıcı değişikliklerin alt tüketicileri çökertmesini engeller.
- ▸
Şema Kayıt Defteri Uyumluluğu, veri sözleşmelerinin (Avro / Protobuf) üreticiler ve tüketiciler arasında serileştirme güvenliğini bozmadan zaman içinde nasıl evrilebileceğini yöneten resmi kurallar bütünüdür.
Yaygın Yanılgılar
- ✗
Geriye dönük uyumlu bir konuda mevcut Avro şemasına varsayılan değeri olmayan zorunlu bir alan eklemek.
Karar Kılavuzu & Önceliklendirme
Otomatik şema uyumluluk yönetişimi olmadan, tek bir üst servisin yaptığı belgelenmemiş bir olay şeması değişikliği yüzlerce alt tüketici boru hattını sessizce bozar veya çökertir.
Doğrulanmış Kaynaklar & Referanslar
- [OFFICIAL-DOC]Schema Registry Compatibility Rules (Avro vs Protobuf) Specification— TinyCTO Architectural Standards
