dataiotech Labs
dbaguidedataxtoolsdataopspheredataopsphereDataOps
dataopsphere.com
Home/Data Contracts/Güvenli Değişiklik & Sürüm Yönetimi
GÜVENLİ DEĞİŞİKLİK & YAYIN PİLOTU

Veri Sözleşmelerinde Güvenli Değişiklik & Sürüm Yönetimi

Schema Registry sözdizimi kontrollerini (BACKWARD) başarıyla geçen ancak iş anlamını ve downstream analitik hatlarını bozan semantik kırılmaları engelleyen çok katmanlı doğrulama mimarisi ve koşullu, aşamalı (phased) üretici-tüketici geçiş protokolü.

1. Sentaktik Kapı
BACKWARD_TRANSITIVE

Avro alan eklemelerinde default zorunluluğu, tip koruması ve tüm geçmiş sürümleri denetleyen katı BACKWARD_TRANSITIVE politikası.

2. Semantik Kapı
Consumer Contract Test

Birim ölçeği (sent vs dolar), minimum 0.01 pozitiflik ve saat kayması iş kuralları.

3. Kademeli Dağıtım
Expand & Contract

Önce tüketiciyi iki şemayı da okuyacak şekilde güncelle, sonra üreticiyi kes.

Expand and Contract Modeli: Kademeli Güvenli Geçiş

Kafka olay akışlarında veya veritabanı şemalarında üretici (Producer) ve tüketici (Consumer) sistemleri aynı anda güncellenemez. Güvenli geçiş için bağımsız dağıtım (Independent Deployability) kuralı işletilmelidir.

Aşama 1: Teklif & Semantik İncelemeRACI: Producer Squad (R)

Yeni alan (örn. discount_code) için ODCS draft kontratı açılır. Downstream tüketicilerle semantik birimler, para birimi ve olası null durumları mutabakata bağlanır.

Aşama 2: Schema Registry CI DoğrulamasıRACI: CI Gate (Automated)

PR pipeline aşamasında Confluent Schema Registry BACKWARD_TRANSITIVE uyumluluğu test edilir. Default değeri olmayan yeni alanlar veya tip kırılmaları otomatik engellenir.

Aşama 3: Tüketicilerin Dağıtımı (Consumer-First / Expand)RACI: Consumer Teams (R)

BACKWARD uyumluluk kuralı (yeni okuyucu eski yazıcıyı okuyabilir) gereğince dağıtım sırası kesin olarak Tüketici-Önce olmalıdır. Tüketici servisleri (Spark, Flink, Fatura API) v2 şemayı okuyabilecek ve henüz üreticide bulunmayan yeni alanlar için varsayılan değerlerle çalışacak şekilde canlıya alınır.

Aşama 4: Üreticinin Yeni Şemaya Geçişi (Canary Cutover)RACI: Producer Squad (R)

Tüm aktif tüketicilerin v2 uyumlu olduğu ve metriklerle doğrulandığı teyit edildikten sonra, üretici mikroservis yeni alanları içeren v2 payload’ları Kafka konusuna yazmaya başlar (Canary / aşamalı geçiş).

Aşama 5: İzleme, Deserialization & TelemetriRACI: SRE & On-Call (A)

Senaryoya özgü önerilen gözlem süresi boyunca (örn. günlük trafik döngüsünü kapsayan 24 saat) Consumer lag, SerDe istisnaları, DLQ hacmi ve veri tazeliği SLO panelleri takip edilir.

Aşama 6: Eski Şemanın Emekliye Ayrılması (Contract)RACI: Data Platform (A)

Belirlenen deprecation takvimi (örn. 30 gün) sonunda v1 şema Schema Registry üzerinde DEPRECATED olarak işaretlenir ve arşivlenir.

Yerel ve CI Doğrulama Paketi

# 36/36 checks passed locally (Node.js v24.19.0 runtime; CI target Node.js 20.18.0):
✔ PASS: ODCS Catalog Inventory (Verified 5 contracts in catalog)
✔ PASS: ODCS v3.0.0 Schema Conformance: 5/5 contracts validated via Ajv2019
✔ PASS: ODCS Negative Guard: 4/4 invalid specs strictly rejected (missing fields, wrong types, legacy spec)
✔ PASS: ODCS Business Rule Preservation: minimum amount, payment method enum, and status enum preserved
✔ PASS: Compatible Evolution (orders-v2-compatible with default-valued fields)
✔ PASS: Incompatible: Missing Default Value (EXPECTED REJECTION)
✔ PASS: Incompatible: Type Mutation (EXPECTED REJECTION: double to string)
✔ PASS: Incompatible: Enum Symbol Removal (EXPECTED REJECTION: REFUNDED removal)
✔ PASS: Registry Policy: BACKWARD_TRANSITIVE Accepted, plain BACKWARD strictly rejected
✔ PASS: Registry Policy: Access failures and malformed outputs trigger immediate pipeline abort
✔ PASS: Consumer Semantic: Valid V1 & V2 Order Events Accepted (Real OrderBillingConsumer)
✔ PASS: Consumer Semantic: Legitimate High-Value Order ($7,500.00) Accepted with Reference Quote
✔ PASS: Consumer Catch: Negative Amount Breach [ODCS-RULE-MIN-AMOUNT]
✔ PASS: Consumer Catch: High-Value & Low-Value ($150 vs $1.50) Unit Inflation [ODCS-SEMANTIC-SCALE-001]
✔ PASS: Consumer Catch: Missing Customer ID, NaN Amount, and Invalid Status Enum
✔ PASS: Consumer Catch: SLA Future Clock Skew (10m ahead) with Deterministic Pinned Clock
Doğrulama Ortamı & CI Durum Bildirimi:

• Tekrarlanabilir Runtime: CI iş akışı .github/workflows/contract-compatibility-ci.yml üzerinde Node.js 20.18.0 LTS sürümüne kesin sabitlenmiştir (.nvmrc, .node-version). Yerel doğrulamalar geliştirme makinesindeki Node.js v24.19.0 üzerinde 36/36 PASS ile tamamlanmıştır.

• GitHub Actions CI Durumu: Uzak GitHub Actions çalıştırması hesap spending limit (bütçe/dakika sınırı) nedeniyle tetiklenmemiştir. Bu durum bir kod veya test hatası olmayıp, uzakta çalıştırılmamış CI bilerek başarılı olarak gösterilmemekte; yerel doğrulama kanıtlarıyla şeffaf biçimde ayrıştırılmaktadır.